Esempio n. 1
0
        Vault IOperationSource <Vault> .CreateResult(Response response, CancellationToken cancellationToken)
        {
            using var document = JsonDocument.Parse(response.ContentStream);
            var data = VaultData.DeserializeVaultData(document.RootElement);

            return(new Vault(_armClient, data));
        }
        private void ValidateVault(
            VaultData vaultData,
            string expectedVaultName,
            string expectedResourceGroupName,
            string expectedSubId,
            Guid expectedTenantId,
            string expectedLocation,
            string expectedSkuFamily,
            SkuName expectedSku,
            bool expectedEnabledForDeployment,
            bool expectedEnabledForTemplateDeployment,
            bool expectedEnabledForDiskEncryption,
            bool?expectedEnableSoftDelete,
            AccessPolicyEntry[] expectedPolicies,
            Dictionary <string, string> expectedTags)
        {
            Assert.NotNull(vaultData);
            Assert.NotNull(vaultData.Properties);

            string resourceIdFormat   = "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.KeyVault/vaults/{2}";
            string expectedResourceId = string.Format(resourceIdFormat, expectedSubId, expectedResourceGroupName, expectedVaultName);

            Assert.AreEqual(expectedResourceId, vaultData.Id.ToString());
            Assert.AreEqual(expectedLocation, vaultData.Location);
            Assert.AreEqual(expectedTenantId, vaultData.Properties.TenantId);
            Assert.AreEqual(expectedSku, vaultData.Properties.Sku.Name);
            Assert.AreEqual(expectedVaultName, vaultData.Name);
            Assert.AreEqual(expectedEnabledForDeployment, vaultData.Properties.EnabledForDeployment);
            Assert.AreEqual(expectedEnabledForTemplateDeployment, vaultData.Properties.EnabledForTemplateDeployment);
            Assert.AreEqual(expectedEnabledForDiskEncryption, vaultData.Properties.EnabledForDiskEncryption);
            Assert.AreEqual(expectedEnableSoftDelete, vaultData.Properties.EnableSoftDelete);
            Assert.True(expectedTags.DictionaryEqual(vaultData.Tags));
            Assert.True(expectedPolicies.IsEqual(vaultData.Properties.AccessPolicies));
        }
Esempio n. 3
0
        public VaultData ReadVault(Account acc)
        {
            var cmd = CreateQuery();

            cmd.CommandText = "SELECT chestId, items FROM vaults WHERE accId=@accId;";
            cmd.Parameters.AddWithValue("@accId", acc.AccountId);
            using (var rdr = cmd.ExecuteReader())
            {
                if (rdr.HasRows)
                {
                    VaultData ret = new VaultData()
                    {
                        Chests = new List <VaultChest>()
                    };
                    while (rdr.Read())
                    {
                        ret.Chests.Add(new VaultChest()
                        {
                            ChestId = rdr.GetInt32("chestId"),
                            _Items  = rdr.GetString("items")
                        });
                    }
                    return(ret);
                }
                else
                {
                    return(new VaultData()
                    {
                        Chests = new List <VaultChest>()
                    });
                }
            }
        }
Esempio n. 4
0
    void LoadVault()
    {
        VaultData data = SaveSystem.LoadVault();

        Vault.money   = data.money;
        Vault.chances = data.chances;
    }
        internal static VaultListResult DeserializeVaultListResult(JsonElement element)
        {
            Optional <IReadOnlyList <VaultData> > value = default;
            Optional <string> nextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <VaultData> array = new List <VaultData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(VaultData.DeserializeVaultData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new VaultListResult(Optional.ToList(value), nextLink.Value));
        }
Esempio n. 6
0
    //Create the header and payload for a string
    public void createMessage(string data)
    {
        string    hash    = NetworkScript.CalculateHash(data);
        VaultData payload = new VaultData(VaultData.NetworkMessageT.PAYLOAD, data);
        VaultData header  = new VaultData(VaultData.NetworkMessageT.INFO, data.Length, hash);

        toServerQueue.Enqueue(header);
        toServerQueue.Enqueue(payload);
        this.recentMessages.Add(hash, data);
    }
Esempio n. 7
0
    public static void SaveVault()
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/vault.nt";
        FileStream      stream    = new FileStream(path, FileMode.Create);

        VaultData data = new VaultData();

        formatter.Serialize(stream, data);
        stream.Close();
    }
Esempio n. 8
0
 public static bool IsEqual(this DeletedVaultResource deletedVault, VaultData createdVault)
 {
     Assert.AreEqual(createdVault.Location, deletedVault.Data.Properties.Location);
     Assert.AreEqual(createdVault.Name, deletedVault.Data.Name);
     Assert.AreEqual(createdVault.Id, deletedVault.Data.Properties.VaultId);
     Assert.AreEqual("Microsoft.KeyVault/deletedVaults", deletedVault.Data.ResourceType);
     Assert.True(createdVault.Tags.DictionaryEqual(deletedVault.Data.Properties.Tags));
     Assert.NotNull(deletedVault.Data.Properties.ScheduledPurgeOn);
     Assert.NotNull(deletedVault.Data.Properties.DeletionOn);
     Assert.NotNull(deletedVault.Id);
     return(true);
 }
Esempio n. 9
0
        public async Task KeyVaultManagementVaultCreateWithoutAccessPolicies()
        {
            IgnoreTestInLiveMode();
            VaultProperties              vaultProperties = new VaultProperties(TenantIdGuid, new KeyVaultSku(KeyVaultSkuFamily.A, KeyVaultSkuName.Standard));
            VaultCreateOrUpdateContent   content         = new VaultCreateOrUpdateContent(Location, vaultProperties);
            ArmOperation <VaultResource> rawVault        = await VaultCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, content);

            VaultData createdVault = rawVault.Value.Data;

            Assert.IsNotNull(createdVault);
            Assert.AreEqual(VaultName, createdVault.Name);
        }
Esempio n. 10
0
        public static bool IsEqual(this VaultData vault1, VaultData vault2)
        {
            Assert.AreEqual(vault2.Location, vault1.Location);
            Assert.AreEqual(vault2.Name, vault1.Name);
            Assert.AreEqual(vault2.Id, vault1.Id);
            Assert.True(vault2.Tags.DictionaryEqual(vault1.Tags));

            Assert.AreEqual(vault2.Properties.VaultUri.ToString().TrimEnd('/'), vault1.Properties.VaultUri.ToString().TrimEnd('/'));
            Assert.AreEqual(vault2.Properties.TenantId, vault1.Properties.TenantId);
            Assert.AreEqual(vault2.Properties.Sku.Name, vault1.Properties.Sku.Name);
            Assert.AreEqual(vault2.Properties.EnableSoftDelete, vault1.Properties.EnableSoftDelete);
            Assert.AreEqual(vault2.Properties.EnabledForTemplateDeployment, vault1.Properties.EnabledForTemplateDeployment);
            Assert.AreEqual(vault2.Properties.EnabledForDiskEncryption, vault1.Properties.EnabledForDiskEncryption);
            Assert.AreEqual(vault2.Properties.EnabledForDeployment, vault1.Properties.EnabledForDeployment);
            Assert.True(vault2.Properties.AccessPolicies.IsEqual(vault1.Properties.AccessPolicies));
            return(true);
        }
Esempio n. 11
0
    public static VaultData LoadVault()
    {
        string path = Application.persistentDataPath + "/vault.nt";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            VaultData data = formatter.Deserialize(stream) as VaultData;
            stream.Close();

            return(data);
        }
        else
        {
            Debug.LogError("Save file not found in " + path);
            return(null);
        }
    }
        private void ValidateVault(
            VaultData vaultData,
            string expectedVaultName,
            string expectedResourceGroupName,
            string expectedSubId,
            Guid expectedTenantId,
            string expectedLocation,
            string expectedSkuFamily,
            SkuName expectedSku,
            bool expectedEnabledForDeployment,
            bool expectedEnabledForTemplateDeployment,
            bool expectedEnabledForDiskEncryption,
            bool?expectedEnableSoftDelete,
            AccessPolicyEntry[] expectedPolicies,
            NetworkRuleSet networkRuleSet,
            Dictionary <string, string> expectedTags)
        {
            ValidateVault(
                vaultData,
                expectedVaultName,
                expectedResourceGroupName,
                expectedSubId,
                expectedTenantId,
                expectedLocation,
                expectedSkuFamily,
                expectedSku,
                expectedEnabledForDeployment,
                expectedEnabledForTemplateDeployment,
                expectedEnabledForDiskEncryption,
                expectedEnableSoftDelete,
                expectedPolicies,
                expectedTags);

            Assert.NotNull(vaultData.Properties.NetworkAcls);
            Assert.AreEqual(networkRuleSet.DefaultAction, vaultData.Properties.NetworkAcls.DefaultAction);
            Assert.AreEqual(networkRuleSet.Bypass, vaultData.Properties.NetworkAcls.Bypass);
            Assert.True(vaultData.Properties.NetworkAcls.IpRules != null && vaultData.Properties.NetworkAcls.IpRules.Count == 2);
            Assert.AreEqual(networkRuleSet.IpRules[0].Value, vaultData.Properties.NetworkAcls.IpRules[0].Value);
            Assert.AreEqual(networkRuleSet.IpRules[1].Value, vaultData.Properties.NetworkAcls.IpRules[1].Value);
        }
Esempio n. 13
0
 public VaultData ReadVault(Account acc)
 {
     var cmd = CreateQuery();
     cmd.CommandText = "SELECT chestId, items FROM vaults WHERE accId=@accId;";
     cmd.Parameters.AddWithValue("@accId", acc.AccountId);
     using (var rdr = cmd.ExecuteReader())
     {
         if (rdr.HasRows)
         {
             VaultData ret = new VaultData() { Chests = new List<VaultChest>() };
             while (rdr.Read())
             {
                 ret.Chests.Add(new VaultChest()
                 {
                     ChestId = rdr.GetInt32("chestId"),
                     _Items = rdr.GetString("items")
                 });
             }
             return ret;
         }
         else
         {
             return new VaultData()
             {
                 Chests = new List<VaultChest>()
             };
         }
     }
 }
Esempio n. 14
0
    /**
     * Accept a received string of information from the server,
     * and do something with it
     */
    void ProcessReceivedData(string receivedJson)
    {
        if (receivedJson == "")
        {
            return;
        }

        Debug.Log("Received data: " + receivedJson);
        //Convert json into object
        VaultData fromNetworkData = JsonUtility.FromJson <VaultData>(receivedJson);

        /*
         * Handle the data:
         */
        switch (fromNetworkData.iden)
        {
        //INIITIAL SETUP HANDSHAKE:
        case VaultData.NetworkMessageT.HANDSHAKE:
            Debug.Log("Network Handshake Complete");
            //Update the connection UI:
            text.text = "Connected";
            //Send some information
            foreach (var obj in this.registered.Values)
            {
                this.createMessage(obj.GetComponent <ActorAIStub> ().toPythonString());
            }
            break;

        //INSTRUCTION TO CHANGE THE GAME WORLD:
        case VaultData.NetworkMessageT.ACTION:
            Debug.Log("Got an Action Header");
            Debug.Log(String.Format("Payload: {0}", fromNetworkData.data));
            Debug.Assert(fromNetworkData.hash == NetworkScript.CalculateHash(fromNetworkData.data));
            this.fromServerQueue.Enqueue(fromNetworkData.data);
            break;

        //NOTIFICATION OF AI CYCLE / TURN COMPLETION:
        case VaultData.NetworkMessageT.AI_COMPLETE:
            Debug.Log("AI Finished, time to trigger actions");
            break;

        //INSTRUCTION TO RESEND CORRUPTED DATA
        case VaultData.NetworkMessageT.RESEND:
            Debug.Log("Hash Mismatch, Resend Data: " + fromNetworkData.hash);
            break;

        //MESSAGES THAT SHOULD ONLY BE SENT, NOT RECEIVED:
        case VaultData.NetworkMessageT.INFO:
        case VaultData.NetworkMessageT.AI_GO:
            throw new Exception("Data or command passed in the wrong direction");
            break;

        //UPON QUIT OF GAME, SIGNAL SHUTDOWN OF SERVER
        case VaultData.NetworkMessageT.QUIT:
            text.text = "Disconnected";
            closeSocket();
            break;

        default:
            closeSocket();
            break;
        }
    }
        public async Task KeyVaultManagementVaultCreateUpdateDelete()
        {
            VaultProperties.EnableSoftDelete = null;

            VaultCreateOrUpdateContent parameters = new VaultCreateOrUpdateContent(Location, VaultProperties);

            parameters.Tags.InitializeFrom(Tags);

            ArmOperation <VaultResource> rawVault = await VaultCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false);

            VaultData createdVault = rawVault.Value.Data;

            ValidateVault(createdVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          KeyVaultSkuName.Standard,
                          true,
                          true,
                          true,
                          true, // enableSoftDelete defaults to true
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            //Update
            AccessPolicy.Permissions.Secrets.Clear();
            AccessPolicy.Permissions.Secrets.Add(SecretPermission.Get);
            AccessPolicy.Permissions.Secrets.Add(SecretPermission.Set);
            (AccessPolicy.Permissions.Keys as ChangeTrackingList <KeyPermission>).Reset();

            AccessPolicy.Permissions.Storage.Clear();
            AccessPolicy.Permissions.Storage.Add(StoragePermission.Get);
            AccessPolicy.Permissions.Storage.Add(StoragePermission.Regeneratekey);

            createdVault.Properties.AccessPolicies.Clear();
            createdVault.Properties.AccessPolicies.Add(AccessPolicy);
            createdVault.Properties.Sku.Name = KeyVaultSkuName.Premium;

            parameters = new VaultCreateOrUpdateContent(Location, createdVault.Properties);
            parameters.Tags.InitializeFrom(Tags);
            ArmOperation <VaultResource> rawUpdateVault = await VaultCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false);

            VaultData updateVault = rawUpdateVault.Value.Data;

            ValidateVault(updateVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          KeyVaultSkuName.Premium,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            Response <VaultResource> rawRetrievedVault = await VaultCollection.GetAsync(VaultName);

            VaultData retrievedVault = rawRetrievedVault.Value.Data;

            ValidateVault(retrievedVault,
                          VaultName,
                          ResGroupName,
                          TestEnvironment.SubscriptionId,
                          TenantIdGuid,
                          Location,
                          "A",
                          KeyVaultSkuName.Premium,
                          true,
                          true,
                          true,
                          true,
                          new[] { AccessPolicy },
                          VaultProperties.NetworkAcls,
                          Tags);

            // Delete
            ArmOperation deleteVault = await rawRetrievedVault.Value.DeleteAsync(WaitUntil.Completed);

            Assert.ThrowsAsync <RequestFailedException>(async() =>
            {
                await VaultCollection.GetAsync(VaultName);
            });
        }