private static Blob ToBlobId(SecretItem item)
      {
         int idx = item.Id.LastIndexOf('/');
         var blob = new Blob(item.Id.Substring(idx + 1), BlobItemKind.File);

         blob.LastModificationTime = item.Attributes.Updated;

         if(item.Attributes.Created != null)
            blob.Properties["Created"] = item.Attributes.Created.Value.ToIso8601DateString();
         if(item.Attributes.Enabled != null)
            blob.Properties["Enabled"] = item.Attributes.Enabled.Value.ToString();
         if(item.Attributes.Expires != null)
            blob.Properties["Expires"] = item.Attributes.Expires.Value.ToIso8601DateString();
         if(item.Attributes.NotBefore != null)
            blob.Properties["NotBefore"] = item.Attributes.NotBefore.Value.ToIso8601DateString();
         if(item.Attributes.RecoveryLevel != null)
            blob.Properties["RecoveryLevel"] = item.Attributes.RecoveryLevel;

         if(item.ContentType != null)
            blob.Properties["ContentType"] = item.ContentType;
         if(item.Managed != null)
            blob.Properties["Managed"] = item.Managed.Value.ToString();

         if(item.Tags != null && item.Tags.Count > 0)
            blob.Metadata.MergeRange(item.Tags);

         return blob;
      }
示例#2
0
        public async Task SetSecret(SecretItem secret, string secretValue, IDictionary <string, string> tags)
        {
            Log.LogDebug($"Set new value for secret '{secret.Identifier.Name}' in KeyVault");
            await _keyVaultClient.SetSecretAsync(_keyVaultUrl, secret.Identifier.Name, secretValue, tags);

            Log.LogInformation($"Updated the secret '{secret.Identifier.Name}' with a new value in the KeyVault");
        }
示例#3
0
        public IActionResult Create([FromBody] SecretItem item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            if (item.Value == null)
            {
                return(Ok());
            }

            var token = Hash.GetSecureToken(_rndProvider);


            if (item.TimeToLive == null)
            {
                // defaults to 5 minutes
                item.TimeToLive = "5";
            }

            var lifespan       = TimeSpan.FromMinutes(Convert.ToInt32(item.TimeToLive));
            var protectedValue = _protector.Protect(item.Value, lifespan);

            _context.SecretItems.Add(new SecretItem {
                Value = protectedValue, Token = token, ExpiredBy = DateTime.Now + lifespan
            });
            _context.SaveChanges();
            var link = $"https://{this.Request.Host}/api/secret/" + token;

            return(Ok(link));
        }
示例#4
0
        public bool Load(SecretItem secret)
        {
            var identity = secret.Identifier.Name
                           .Replace("--", ConfigurationPath.KeyDelimiter)
                           .Replace("-", "_");

            return(identity.StartsWith(_prefix));
        }
示例#5
0
        //todo better!
        //  Battlecry: Take control of a random enemy Secret;.

        public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice)
        {
            if (own.own)
            {
                if (p.enemySecretList.Count >= 1)
                {
                    if (p.enemyHeroName == HeroEnum.hunter)
                    {
                        p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_610);
                    }
                    if (p.enemyHeroName == HeroEnum.mage)
                    {
                        p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_594);
                    }
                    if (p.enemyHeroName == HeroEnum.pala)
                    {
                        p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_130);
                    }

                    if (p.enemyHeroName != HeroEnum.hunter && p.enemyHeroName != HeroEnum.mage && p.enemyHeroName != HeroEnum.pala)
                    {
                        p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_130);
                    }

                    p.enemySecretList.RemoveAt(0);
                }
            }
            else
            {
                if (p.ownSecretsIDList.Count >= 1)
                {
                    p.ownSecretsIDList.RemoveAt(0);
                    SecretItem s = new SecretItem
                    {
                        canBe_avenge         = false,
                        canBe_counterspell   = false,
                        canBe_duplicate      = false,
                        canBe_explosive      = true,
                        canBe_eyeforaneye    = false,
                        canBe_freezing       = false,
                        canBe_icebarrier     = false,
                        canBe_iceblock       = false,
                        canBe_mirrorentity   = false,
                        canBe_missdirection  = false,
                        canBe_noblesacrifice = false,
                        canBe_redemption     = false,
                        canBe_repentance     = false,
                        canBe_snaketrap      = false,
                        canBe_snipe          = false,
                        canBe_spellbender    = false,
                        canBe_vaporize       = false,
                        entityId             = 1050
                    };

                    p.enemySecretList.Add(s);
                }
            }
        }
        private async Task <ScriptSecrets> ReadHostSecrets()
        {
            IPage <SecretItem> secretItems = await _keyVaultClient.Value.GetSecretsAsync(GetVaultBaseUrl());

            List <Task <SecretBundle> > tasks = new List <Task <SecretBundle> >();

            // Add master key task
            SecretItem masterItem = secretItems.FirstOrDefault(x => x.Identifier.Name.StartsWith(MasterKey));

            if (masterItem != null)
            {
                tasks.Add(_keyVaultClient.Value.GetSecretAsync(GetVaultBaseUrl(), masterItem.Identifier.Name));
            }
            else
            {
                return(null);
            }

            // Add functionKey tasks
            foreach (SecretItem item in secretItems.Where(x => x.Identifier.Name.StartsWith(FunctionKeyPrefix)))
            {
                tasks.Add(_keyVaultClient.Value.GetSecretAsync(GetVaultBaseUrl(), item.Identifier.Name));
            }

            // Add systemKey tasks
            foreach (SecretItem item in secretItems.Where(x => x.Identifier.Name.StartsWith(SystemKeyPrefix)))
            {
                tasks.Add(_keyVaultClient.Value.GetSecretAsync(GetVaultBaseUrl(), item.Identifier.Name));
            }

            await Task.WhenAll(tasks);

            HostSecrets hostSecrets = new HostSecrets()
            {
                FunctionKeys = new List <Key>(),
                SystemKeys   = new List <Key>()
            };

            foreach (Task <SecretBundle> task in tasks)
            {
                SecretBundle item = task.Result;
                if (item.SecretIdentifier.Name.StartsWith(MasterKey))
                {
                    hostSecrets.MasterKey = SecretBundleToKey(item, MasterKey);
                }
                else if (item.SecretIdentifier.Name.StartsWith(FunctionKeyPrefix))
                {
                    hostSecrets.FunctionKeys.Add(SecretBundleToKey(item, FunctionKeyPrefix));
                }
                else if (item.SecretIdentifier.Name.StartsWith(SystemKeyPrefix))
                {
                    hostSecrets.SystemKeys.Add(SecretBundleToKey(item, SystemKeyPrefix));
                }
            }

            return(hostSecrets);
        }
        ///GENMHASH:D2EF373C3F52CF849FAB0427BA0BEC94:0236CC4148BAFE5FDA58A7525428A25F
        private ISecret WrapModel(SecretItem inner)
        {
            if (inner == null)
            {
                return(null);
            }
            string serialized = Rest.Serialization.SafeJsonConvert.SerializeObject(inner, vault.Manager.Inner.SerializationSettings);

            return(WrapModel(Rest.Serialization.SafeJsonConvert.DeserializeObject <SecretBundle>(serialized, vault.Manager.Inner.SerializationSettings)));
        }
        public bool Load(SecretItem secret)
        {
            if (!string.IsNullOrWhiteSpace(this.options.Prefix))
            {
                return(secret.Identifier.Name.StartsWith(this.options.Prefix, StringComparison.OrdinalIgnoreCase));
            }

            if (!this.options.Prefixes.Any())
            {
                return(true);
            }

            return(this.options.Prefixes.Any(prefix => secret.Identifier.Name.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)));
        }
示例#9
0
        private static void Output(SecretItem item)
        {
            var id = item.Identifier;

            Console.WriteLine($"secret item: {id}");
            Console.WriteLine($"name: {id.Name}");
            Console.WriteLine($"version: {id.Version}");

            var attrs = item.Attributes;

            Console.WriteLine($"enabled: {attrs.Enabled}");
            Console.WriteLine($"created: {attrs.Created}");
            Console.WriteLine($"updated: {attrs.Updated}");
            Console.WriteLine($"expires: {attrs.Expires}");
        }
        public bool Load(SecretItem secret)
        {
            // Load a vault secret when its secret name starts with the
            // prefix. Other secrets won't be loaded.
            var secretName = secret.Identifier.Name;

            var envIndex = secretName.IndexOf("--");

            if (envIndex > -1)
            {
                var env = secretName.Substring(0, envIndex);

                return(!AzureVaultKeyBuilder.Enviroments.ContainsValue(env));
            }

            return(true);
        }
示例#11
0
 //[x]After you use your HeroPower, cast a <b>Secret</b>from your deck.
 //在你使用你的英雄技能后,从你的牌库中施放一个<b>奥秘</b>。
 public override void onInspire(Playfield p, Minion m, bool ownerOfInspire)
 {
     if (m.own)
     {
         p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_554);
     }
     else
     {
         if (p.enemySecretCount <= 4)
         {
             p.enemySecretCount++;
             SecretItem si = Probabilitymaker.Instance.getNewSecretGuessedItem(p.getNextEntity(), p.ownHeroStartClass);
             if (Settings.Instance.useSecretsPlayAround)
             {
                 p.enemySecretList.Add(si);
             }
         }
     }
 }
示例#12
0
        //Battlecry: Put one of each Secret from your deck into the battlefield

        public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice)
        {
            //if(p.isServer)
            //TODO

            if (own.own)
            {
                if (p.ownHeroName == HeroEnum.mage)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_289);
                }
                if (p.ownHeroName == HeroEnum.hunter)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_554);
                }
                if (p.ownHeroName == HeroEnum.pala)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_130); //noble sac
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.FP1_020); //avenge
                }
            }
            else
            {
                if (p.enemyHeroName == HeroEnum.mage || p.enemyHeroName == HeroEnum.hunter || p.enemyHeroName == HeroEnum.pala)
                {
                    if (p.enemySecretCount <= 4)
                    {
                        p.enemySecretCount++;
                        SecretItem si = Probabilitymaker.Instance.getNewSecretGuessedItem(p.getNextEntity(), p.enemyHeroName);
                        if (p.enemyHeroName == HeroEnum.pala)
                        {
                            si.canBe_redemption = false;
                        }
                        if (Settings.Instance.useSecretsPlayArround)
                        {
                            p.enemySecretList.Add(si);
                        }
                    }
                }
            }
        }
示例#13
0
        //<deDE>Todesröcheln: Legt ein Geheimnis aus Eurem Deck auf das Schlachtfeld.

        public override void onDeathrattle(Playfield p, Minion m)
        {
            //if(p.isServer)

            if (m.own)
            {
                if (p.ownHeroName == HeroEnum.mage)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_289);
                }
                if (p.ownHeroName == HeroEnum.hunter)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_554);
                }
                if (p.ownHeroName == HeroEnum.pala)
                {
                    p.ownSecretsIDList.Add(CardDB.cardIDEnum.EX1_130);
                }
            }
            else
            {
                if (p.enemyHeroName == HeroEnum.mage || p.enemyHeroName == HeroEnum.hunter || p.enemyHeroName == HeroEnum.pala)
                {
                    if (p.enemySecretCount <= 4)
                    {
                        p.enemySecretCount++;
                        SecretItem si = Probabilitymaker.Instance.getNewSecretGuessedItem(p.getNextEntity(), p.enemyHeroName);
                        if (p.enemyHeroName == HeroEnum.pala)
                        {
                            si.canBe_redemption = false;
                        }
                        if (Settings.Instance.useSecretsPlayArround)
                        {
                            p.enemySecretList.Add(si);
                        }
                    }
                }
            }
        }
示例#14
0
        // Deathrattle: Put a Secret: from your deck into the battlefield.

        public override void onDeathrattle(Playfield p, Minion m)
        {
            if (m.own)
            {
                if (p.ownHeroStartClass == TAG_CLASS.MAGE)
                {
                    p.ownSecretsIDList.Add(CardIdEnum.EX1_289);
                }
                if (p.ownHeroStartClass == TAG_CLASS.HUNTER)
                {
                    p.ownSecretsIDList.Add(CardIdEnum.EX1_554);
                }
                if (p.ownHeroStartClass == TAG_CLASS.PALADIN)
                {
                    p.ownSecretsIDList.Add(CardIdEnum.EX1_130);
                }
            }
            else
            {
                if (p.enemyHeroStartClass == TAG_CLASS.MAGE || p.enemyHeroStartClass == TAG_CLASS.HUNTER || p.enemyHeroStartClass == TAG_CLASS.PALADIN)
                {
                    if (p.enemySecretCount <= 4)
                    {
                        p.enemySecretCount++;
                        SecretItem si = Probabilitymaker.Instance.getNewSecretGuessedItem(p.getNextEntity(), p.ownHeroStartClass);
                        if (p.enemyHeroStartClass == TAG_CLASS.PALADIN)
                        {
                            si.canBe_redemption = false;
                        }
                        if (Settings.Instance.useSecretsPlayAround)
                        {
                            p.enemySecretList.Add(si);
                        }
                    }
                }
            }
        }
 public ListViewItemSecret(ISession session, SecretItem si) : this(session, si.Identifier, si.Attributes, si.ContentType, si.Tags)
 {
 }
 public bool Load(SecretItem secret)
 {
     return(secret.Identifier.Name.StartsWith(this._prefix));
 }
示例#17
0
 public bool Load(SecretItem secret)
 {
     // Load a vault secret when its secret name starts with the
     // prefix. Other secrets won't be loaded.
     return(secret.Identifier.Name.StartsWith(_prefix));
 }
示例#18
0
 public override bool Load(SecretItem secret)
 {
     return(HasEnvironmentPrefix(secret.Identifier.Name));
 }
 /// <inheritdoc />
 public virtual bool Load(SecretItem secret)
 {
     return(true);
 }
 private static bool IsSecretActive(SecretItem theSecret)
 {
     return((theSecret.Attributes.Enabled == null || theSecret.Attributes.Enabled == true) &&
            (theSecret.Attributes.NotBefore == null || theSecret.Attributes.NotBefore < DateTime.UtcNow) &&
            (theSecret.Attributes.Expires == null || theSecret.Attributes.Expires > DateTime.UtcNow));
 }
 public bool Load(SecretItem secret)
 {
     return(secret.Identifier.Name.StartsWith("sqlconn"));
 }
示例#22
0
 public override bool Load(SecretItem secret)
 {
     return(secret.Identifier.Name.EndsWith("1"));
 }
        private static BlobId ToBlobId(SecretItem item)
        {
            int idx = item.Id.LastIndexOf('/');

            return(new BlobId(item.Id.Substring(idx + 1), BlobItemKind.File));
        }
示例#24
0
 public bool Load(SecretItem secret) => true;
示例#25
0
 public SecretVersion(int index, SecretItem secretItem) : base(index, secretItem.Attributes.Created, secretItem.Attributes.Updated, Microsoft.Vault.Library.Utils.GetChangedBy(secretItem.Tags), secretItem.Identifier)
 {
     SecretItem = secretItem;
 }
示例#26
0
 public bool Load(SecretItem secret)
 {
     return(true);
 }
 /// <inheritdoc />
 public override bool Load(SecretItem secret)
 {
     return(secret.Attributes.Enabled ?? false);
 }
示例#28
0
 /// <inheritdoc />
 public bool Load(SecretItem secret)
 {
     return(secret.Identifier.Name.StartsWith(_prefix, StringComparison.Ordinal));
 }
示例#29
0
 public bool Load(SecretItem secret)
 {
     // Load a vault secret when its secret name starts with the
     // prefix. Other secrets won't be loaded.
     return(secret.Identifier.Name.StartsWith(this.prefix, System.StringComparison.OrdinalIgnoreCase));
 }
示例#30
0
 bool IKeyVaultSecretManager.Load(SecretItem secret)
 {
     return(secret.Identifier.Name.StartsWith(AppNamePrefix));
 }