Пример #1
0
        public async Task <IActionResult> Unwrap(EncryptDto toDecrypt)
        {
            KeyVaultKey key = await _keyClient.GetKeyAsync("test");

            CryptographyClient crypto     = new CryptographyClient(key.Id, new DefaultAzureCredential());
            KeyVaultSecret     wrappedKey = await _secretClient.GetSecretAsync(toDecrypt.Name);

            UnwrapResult result = await crypto.UnwrapKeyAsync(KeyWrapAlgorithm.RsaOaep256, Convert.FromBase64String(wrappedKey.Value));

            return(Ok(Encoding.UTF8.GetString(result.Key)));
        }
Пример #2
0
        public async Task <IActionResult> Decrypt(EncryptDto toDecrypt)
        {
            byte[]      toDecryptInBytes = Convert.FromBase64String(toDecrypt.Payload);
            KeyVaultKey key = await _keyClient.GetKeyAsync("test");

            CryptographyClient crypto = new CryptographyClient(key.Id, new DefaultAzureCredential());

            DecryptResult result = await crypto.DecryptAsync(EncryptionAlgorithm.RsaOaep256, toDecryptInBytes);

            return(new OkObjectResult(Encoding.UTF8.GetString(result.Plaintext)));
        }
Пример #3
0
        public async Task <IActionResult> Wrap(EncryptDto toEncrypt)
        {
            byte[]      keyToWrap = Encoding.UTF8.GetBytes(toEncrypt.Payload);
            KeyVaultKey key       = await _keyClient.GetKeyAsync("test");

            CryptographyClient crypto = new CryptographyClient(key.Id, new DefaultAzureCredential());

            WrapResult result = await crypto.WrapKeyAsync(KeyWrapAlgorithm.RsaOaep256, keyToWrap);

            KeyVaultSecret secret = await _secretClient.SetSecretAsync(new KeyVaultSecret(toEncrypt.Name, Convert.ToBase64String(result.EncryptedKey)));

            return(Ok(secret));
        }
Пример #4
0
        public async Task <IActionResult> Encrypt(EncryptDto toEncrypt)
        {
            byte[] toEncryptInBytes = Encoding.UTF8.GetBytes(toEncrypt.Payload);

            if (toEncryptInBytes.Length > 245)
            {
                return(BadRequest());
            }

            KeyVaultKey key = await _keyClient.GetKeyAsync("test");

            CryptographyClient crypto = new CryptographyClient(key.Id, new DefaultAzureCredential());

            EncryptResult result = await crypto.EncryptAsync(EncryptionAlgorithm.RsaOaep256, toEncryptInBytes);

            return(new OkObjectResult(Convert.ToBase64String(result.Ciphertext)));
        }