{"id":"7837808e-6ea1-4aaa-b156-e8c5928f2cf0","shortId":"58pkLf","kind":"skill","title":"azure-security-keyvault-keys-dotnet","tagline":"Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification.","description":"# Azure.Security.KeyVault.Keys (.NET)\n\nClient library for managing cryptographic keys in Azure Key Vault and Managed HSM.\n\n## Installation\n\n```bash\ndotnet add package Azure.Security.KeyVault.Keys\ndotnet add package Azure.Identity\n```\n\n**Current Version**: 4.7.0 (stable)\n\n## Environment Variables\n\n```bash\nKEY_VAULT_NAME=<your-key-vault-name>\n# Or full URI\nAZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net\n```\n\n## Client Hierarchy\n\n```\nKeyClient (key management)\n├── CreateKey / CreateRsaKey / CreateEcKey\n├── GetKey / GetKeys\n├── UpdateKeyProperties\n├── DeleteKey / PurgeDeletedKey\n├── BackupKey / RestoreKey\n└── GetCryptographyClient() → CryptographyClient\n\nCryptographyClient (cryptographic operations)\n├── Encrypt / Decrypt\n├── WrapKey / UnwrapKey\n├── Sign / Verify\n└── SignData / VerifyData\n\nKeyResolver (key resolution)\n└── Resolve(keyId) → CryptographyClient\n```\n\n## Authentication\n\n### DefaultAzureCredential (Recommended)\n\n```csharp\nusing Azure.Identity;\nusing Azure.Security.KeyVault.Keys;\n\nvar keyVaultName = Environment.GetEnvironmentVariable(\"KEY_VAULT_NAME\");\nvar kvUri = $\"https://{keyVaultName}.vault.azure.net\";\n\nvar client = new KeyClient(new Uri(kvUri), new DefaultAzureCredential());\n```\n\n### Service Principal\n\n```csharp\nvar credential = new ClientSecretCredential(\n    tenantId: \"<tenant-id>\",\n    clientId: \"<client-id>\",\n    clientSecret: \"<client-secret>\");\n\nvar client = new KeyClient(new Uri(kvUri), credential);\n```\n\n## Key Management\n\n### Create Keys\n\n```csharp\n// Create RSA key\nKeyVaultKey rsaKey = await client.CreateKeyAsync(\"my-rsa-key\", KeyType.Rsa);\nConsole.WriteLine($\"Created key: {rsaKey.Name}, Type: {rsaKey.KeyType}\");\n\n// Create RSA key with options\nvar rsaOptions = new CreateRsaKeyOptions(\"my-rsa-key-2048\")\n{\n    KeySize = 2048,\n    HardwareProtected = false, // true for HSM-backed\n    ExpiresOn = DateTimeOffset.UtcNow.AddYears(1),\n    NotBefore = DateTimeOffset.UtcNow,\n    Enabled = true\n};\nrsaOptions.KeyOperations.Add(KeyOperation.Encrypt);\nrsaOptions.KeyOperations.Add(KeyOperation.Decrypt);\n\nKeyVaultKey rsaKey2 = await client.CreateRsaKeyAsync(rsaOptions);\n\n// Create EC key\nvar ecOptions = new CreateEcKeyOptions(\"my-ec-key\")\n{\n    CurveName = KeyCurveName.P256,\n    HardwareProtected = true // HSM-backed\n};\nKeyVaultKey ecKey = await client.CreateEcKeyAsync(ecOptions);\n\n// Create Oct (symmetric) key for wrap/unwrap\nvar octOptions = new CreateOctKeyOptions(\"my-oct-key\")\n{\n    KeySize = 256,\n    HardwareProtected = true\n};\nKeyVaultKey octKey = await client.CreateOctKeyAsync(octOptions);\n```\n\n### Retrieve Keys\n\n```csharp\n// Get specific key (latest version)\nKeyVaultKey key = await client.GetKeyAsync(\"my-rsa-key\");\nConsole.WriteLine($\"Key ID: {key.Id}\");\nConsole.WriteLine($\"Key Type: {key.KeyType}\");\nConsole.WriteLine($\"Version: {key.Properties.Version}\");\n\n// Get specific version\nKeyVaultKey keyVersion = await client.GetKeyAsync(\"my-rsa-key\", \"version-id\");\n\n// List all keys\nawait foreach (KeyProperties keyProps in client.GetPropertiesOfKeysAsync())\n{\n    Console.WriteLine($\"Key: {keyProps.Name}, Enabled: {keyProps.Enabled}\");\n}\n\n// List key versions\nawait foreach (KeyProperties version in client.GetPropertiesOfKeyVersionsAsync(\"my-rsa-key\"))\n{\n    Console.WriteLine($\"Version: {version.Version}, Created: {version.CreatedOn}\");\n}\n```\n\n### Update Key Properties\n\n```csharp\nKeyVaultKey key = await client.GetKeyAsync(\"my-rsa-key\");\n\nkey.Properties.ExpiresOn = DateTimeOffset.UtcNow.AddYears(2);\nkey.Properties.Tags[\"environment\"] = \"production\";\n\nKeyVaultKey updatedKey = await client.UpdateKeyPropertiesAsync(key.Properties);\n```\n\n### Delete and Purge Keys\n\n```csharp\n// Start delete operation\nDeleteKeyOperation operation = await client.StartDeleteKeyAsync(\"my-rsa-key\");\n\n// Wait for deletion to complete (required before purge)\nawait operation.WaitForCompletionAsync();\nConsole.WriteLine($\"Deleted key scheduled purge date: {operation.Value.ScheduledPurgeDate}\");\n\n// Purge immediately (if soft-delete is enabled)\nawait client.PurgeDeletedKeyAsync(\"my-rsa-key\");\n\n// Or recover deleted key\nKeyVaultKey recoveredKey = await client.StartRecoverDeletedKeyAsync(\"my-rsa-key\");\n```\n\n### Backup and Restore\n\n```csharp\n// Backup key\nbyte[] backup = await client.BackupKeyAsync(\"my-rsa-key\");\nawait File.WriteAllBytesAsync(\"key-backup.bin\", backup);\n\n// Restore key\nbyte[] backupData = await File.ReadAllBytesAsync(\"key-backup.bin\");\nKeyVaultKey restoredKey = await client.RestoreKeyBackupAsync(backupData);\n```\n\n## Cryptographic Operations\n\n### Get CryptographyClient\n\n```csharp\n// From KeyClient\nKeyVaultKey key = await client.GetKeyAsync(\"my-rsa-key\");\nCryptographyClient cryptoClient = client.GetCryptographyClient(\n    key.Name, \n    key.Properties.Version);\n\n// Or create directly with key ID\nCryptographyClient cryptoClient = new CryptographyClient(\n    new Uri(\"https://myvault.vault.azure.net/keys/my-rsa-key/version\"),\n    new DefaultAzureCredential());\n```\n\n### Encrypt and Decrypt\n\n```csharp\nbyte[] plaintext = Encoding.UTF8.GetBytes(\"Secret message to encrypt\");\n\n// Encrypt\nEncryptResult encryptResult = await cryptoClient.EncryptAsync(\n    EncryptionAlgorithm.RsaOaep256, \n    plaintext);\nConsole.WriteLine($\"Encrypted: {Convert.ToBase64String(encryptResult.Ciphertext)}\");\n\n// Decrypt\nDecryptResult decryptResult = await cryptoClient.DecryptAsync(\n    EncryptionAlgorithm.RsaOaep256, \n    encryptResult.Ciphertext);\nstring decrypted = Encoding.UTF8.GetString(decryptResult.Plaintext);\nConsole.WriteLine($\"Decrypted: {decrypted}\");\n```\n\n### Wrap and Unwrap Keys\n\n```csharp\n// Key to wrap (e.g., AES key)\nbyte[] keyToWrap = new byte[32]; // 256-bit key\nRandomNumberGenerator.Fill(keyToWrap);\n\n// Wrap key\nWrapResult wrapResult = await cryptoClient.WrapKeyAsync(\n    KeyWrapAlgorithm.RsaOaep256, \n    keyToWrap);\n\n// Unwrap key\nUnwrapResult unwrapResult = await cryptoClient.UnwrapKeyAsync(\n    KeyWrapAlgorithm.RsaOaep256, \n    wrapResult.EncryptedKey);\n```\n\n### Sign and Verify\n\n```csharp\n// Data to sign\nbyte[] data = Encoding.UTF8.GetBytes(\"Data to sign\");\n\n// Sign data (computes hash internally)\nSignResult signResult = await cryptoClient.SignDataAsync(\n    SignatureAlgorithm.RS256, \n    data);\n\n// Verify signature\nVerifyResult verifyResult = await cryptoClient.VerifyDataAsync(\n    SignatureAlgorithm.RS256, \n    data, \n    signResult.Signature);\nConsole.WriteLine($\"Signature valid: {verifyResult.IsValid}\");\n\n// Or sign pre-computed hash\nusing var sha256 = SHA256.Create();\nbyte[] hash = sha256.ComputeHash(data);\n\nSignResult signHashResult = await cryptoClient.SignAsync(\n    SignatureAlgorithm.RS256, \n    hash);\n```\n\n## Key Resolver\n\n```csharp\nusing Azure.Security.KeyVault.Keys.Cryptography;\n\nvar resolver = new KeyResolver(new DefaultAzureCredential());\n\n// Resolve key by ID to get CryptographyClient\nCryptographyClient cryptoClient = await resolver.ResolveAsync(\n    new Uri(\"https://myvault.vault.azure.net/keys/my-key/version\"));\n\n// Use for encryption\nEncryptResult result = await cryptoClient.EncryptAsync(\n    EncryptionAlgorithm.RsaOaep256, \n    plaintext);\n```\n\n## Key Rotation\n\n```csharp\n// Rotate key (creates new version)\nKeyVaultKey rotatedKey = await client.RotateKeyAsync(\"my-rsa-key\");\nConsole.WriteLine($\"New version: {rotatedKey.Properties.Version}\");\n\n// Get rotation policy\nKeyRotationPolicy policy = await client.GetKeyRotationPolicyAsync(\"my-rsa-key\");\n\n// Update rotation policy\npolicy.ExpiresIn = \"P90D\"; // 90 days\npolicy.LifetimeActions.Add(new KeyRotationLifetimeAction\n{\n    Action = KeyRotationPolicyAction.Rotate,\n    TimeBeforeExpiry = \"P30D\" // Rotate 30 days before expiry\n});\n\nawait client.UpdateKeyRotationPolicyAsync(\"my-rsa-key\", policy);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `KeyClient` | Key management operations |\n| `CryptographyClient` | Cryptographic operations |\n| `KeyResolver` | Resolve key ID to CryptographyClient |\n| `KeyVaultKey` | Key with cryptographic material |\n| `KeyProperties` | Key metadata (no crypto material) |\n| `CreateRsaKeyOptions` | RSA key creation options |\n| `CreateEcKeyOptions` | EC key creation options |\n| `CreateOctKeyOptions` | Symmetric key options |\n| `EncryptResult` | Encryption result |\n| `DecryptResult` | Decryption result |\n| `SignResult` | Signing result |\n| `VerifyResult` | Verification result |\n| `WrapResult` | Key wrap result |\n| `UnwrapResult` | Key unwrap result |\n\n## Algorithms Reference\n\n### Encryption Algorithms\n| Algorithm | Key Type | Description |\n|-----------|----------|-------------|\n| `RsaOaep` | RSA | RSA-OAEP |\n| `RsaOaep256` | RSA | RSA-OAEP-256 |\n| `Rsa15` | RSA | RSA 1.5 (legacy) |\n| `A128Gcm` | Oct | AES-128-GCM |\n| `A256Gcm` | Oct | AES-256-GCM |\n\n### Signature Algorithms\n| Algorithm | Key Type | Description |\n|-----------|----------|-------------|\n| `RS256` | RSA | RSASSA-PKCS1-v1_5 SHA-256 |\n| `RS384` | RSA | RSASSA-PKCS1-v1_5 SHA-384 |\n| `RS512` | RSA | RSASSA-PKCS1-v1_5 SHA-512 |\n| `PS256` | RSA | RSASSA-PSS SHA-256 |\n| `ES256` | EC | ECDSA P-256 SHA-256 |\n| `ES384` | EC | ECDSA P-384 SHA-384 |\n| `ES512` | EC | ECDSA P-521 SHA-512 |\n\n### Key Wrap Algorithms\n| Algorithm | Key Type | Description |\n|-----------|----------|-------------|\n| `RsaOaep` | RSA | RSA-OAEP |\n| `RsaOaep256` | RSA | RSA-OAEP-256 |\n| `A128KW` | Oct | AES-128 Key Wrap |\n| `A256KW` | Oct | AES-256 Key Wrap |\n\n## Best Practices\n\n1. **Use Managed Identity** — Prefer `DefaultAzureCredential` over secrets\n2. **Enable soft-delete** — Protect against accidental deletion\n3. **Use HSM-backed keys** — Set `HardwareProtected = true` for sensitive keys\n4. **Implement key rotation** — Use automatic rotation policies\n5. **Limit key operations** — Only enable required `KeyOperations`\n6. **Set expiration dates** — Always set `ExpiresOn` for keys\n7. **Use specific versions** — Pin to versions in production\n8. **Cache CryptographyClient** — Reuse for multiple operations\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    KeyVaultKey key = await client.GetKeyAsync(\"my-key\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 404)\n{\n    Console.WriteLine(\"Key not found\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 403)\n{\n    Console.WriteLine(\"Access denied - check RBAC permissions\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Key Vault error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Required RBAC Roles\n\n| Role | Permissions |\n|------|-------------|\n| Key Vault Crypto Officer | Full key management |\n| Key Vault Crypto User | Use keys for crypto operations |\n| Key Vault Reader | Read key metadata |\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.Security.KeyVault.Keys` | Keys (this SDK) | `dotnet add package Azure.Security.KeyVault.Keys` |\n| `Azure.Security.KeyVault.Secrets` | Secrets | `dotnet add package Azure.Security.KeyVault.Secrets` |\n| `Azure.Security.KeyVault.Certificates` | Certificates | `dotnet add package Azure.Security.KeyVault.Certificates` |\n| `Azure.Identity` | Authentication | `dotnet add package Azure.Identity` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https://www.nuget.org/packages/Azure.Security.KeyVault.Keys |\n| API Reference | https://learn.microsoft.com/dotnet/api/azure.security.keyvault.keys |\n| Quickstart | https://learn.microsoft.com/azure/key-vault/keys/quick-create-net |\n| GitHub Source | https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/keyvault/Azure.Security.KeyVault.Keys |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","security","keyvault","keys","dotnet","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills"],"capabilities":["skill","source-sickn33","skill-azure-security-keyvault-keys-dotnet","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-security-keyvault-keys-dotnet","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (11,891 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:33.767Z","embedding":null,"createdAt":"2026-04-18T21:33:05.011Z","updatedAt":"2026-04-24T18:50:33.767Z","lastSeenAt":"2026-04-24T18:50:33.767Z","tsv":"'-128':801,890 '-256':806,822,847,852,854,896 '-384':831,859,861 '-512':840,868 '-521':866 '/azure/azure-sdk-for-net/tree/main/sdk/keyvault/azure.security.keyvault.keys':1095 '/azure/key-vault/keys/quick-create-net':1090 '/dotnet/api/azure.security.keyvault.keys':1086 '/keys/my-key/version':644 '/keys/my-rsa-key/version':485 '/packages/azure.security.keyvault.keys':1081 '1':206,901 '1.5':796 '2':353,909 '2048':194,196 '256':258,540,792,886 '3':918 '30':700 '32':539 '4':930 '4.7.0':64 '403':999 '404':989 '5':820,829,838,938 '6':946 '7':955 '8':964 '90':690 'a128gcm':798 'a128kw':887 'a256gcm':803 'a256kw':893 'access':1001 'accident':916 'action':695,1108 'add':55,59,1052,1058,1064,1070 'ae':533,800,805,889,895 'algorithm':774,777,778,809,810,871,872 'alway':950 'api':1082 'applic':1102 'ask':1146 'authent':113,1068 'automat':935 'await':168,217,240,263,276,298,310,324,345,359,372,386,403,415,429,435,443,448,460,502,513,549,557,581,589,614,638,650,664,679,704,979 'azur':2,7,21,46,75,975 'azure-security-keyvault-keys-dotnet':1 'azure.identity':61,118,1067,1072 'azure.security.keyvault.certificates':1061,1066 'azure.security.keyvault.keys':37,57,120,1047,1054 'azure.security.keyvault.keys.cryptography':622 'azure.security.keyvault.secrets':1055,1060 'back':203,237,922 'backup':421,425,428,438 'backupdata':442,450 'backupkey':92 'bash':53,68 'best':899 'bit':541 'boundari':1154 'byte':427,441,492,535,538,568,608 'cach':965 'catch':984,994,1006 'certif':1062 'check':1003 'clarif':1148 'clear':1121 'client':14,39,79,132,151 'client.backupkeyasync':430 'client.createeckeyasync':241 'client.createkeyasync':169 'client.createoctkeyasync':264 'client.creatersakeyasync':218 'client.getcryptographyclient':468 'client.getkeyasync':277,299,346,461,980 'client.getkeyrotationpolicyasync':680 'client.getpropertiesofkeysasync':315 'client.getpropertiesofkeyversionsasync':329 'client.purgedeletedkeyasync':404 'client.restorekeybackupasync':449 'client.rotatekeyasync':665 'client.startdeletekeyasync':373 'client.startrecoverdeletedkeyasync':416 'client.updatekeypropertiesasync':360 'client.updatekeyrotationpolicyasync':705 'clientid':148 'clientsecret':149 'clientsecretcredenti':146 'complet':382 'comput':576,602 'console.writeline':175,282,286,290,316,334,388,506,521,594,670,990,1000,1009 'convert.tobase64string':508 'creat':160,163,176,181,220,243,337,472,659 'createeckey':86 'createeckeyopt':226,745 'createkey':84 'createoctkeyopt':252,750 'creatersakey':85 'creatersakeyopt':189,740 'creation':30,743,748 'credenti':144,157 'criteria':1157 'crypto':738,1022,1029,1034 'cryptocli':467,478,637 'cryptoclient.decryptasync':514 'cryptoclient.encryptasync':503,651 'cryptoclient.signasync':615 'cryptoclient.signdataasync':582 'cryptoclient.unwrapkeyasync':558 'cryptoclient.verifydataasync':590 'cryptoclient.wrapkeyasync':550 'cryptograph':18,43,97,451,721,732 'cryptographycli':95,96,112,454,466,477,480,635,636,720,728,966 'csharp':116,142,162,268,342,366,424,455,491,528,564,620,656,973 'current':62 'curvenam':231 'data':565,569,571,575,584,592,611 'date':393,949 'datetimeoffset.utcnow':208 'datetimeoffset.utcnow.addyears':205,352 'day':691,701 'decrypt':33,100,490,510,518,522,523,758 'decryptresult':511,512,757 'decryptresult.plaintext':520 'defaultazurecredenti':114,139,487,628,906 'delet':362,368,380,389,400,411,913,917 'deletekey':90 'deletekeyoper':370 'deni':1002 'describ':1109,1125 'descript':781,813,875 'direct':473 'dotnet':6,54,58,1051,1057,1063,1069 'e.g':532 'ec':221,229,746,849,856,863 'ecdsa':850,857,864 'eckey':239 'ecopt':224,242 'enabl':209,319,402,910,943 'encoding.utf8.getbytes':494,570 'encoding.utf8.getstring':519 'encrypt':32,99,488,498,499,507,647,755,776 'encryptionalgorithm.rsaoaep256':504,515,652 'encryptresult':500,501,648,754 'encryptresult.ciphertext':509,516 'environ':66,355,1137 'environment-specif':1136 'environment.getenvironmentvariable':123 'error':971,1012 'es256':848 'es384':855 'es512':862 'ex':986,996,1008 'ex.message':1014 'ex.status':988,998,1013 'execut':1104 'expert':1142 'expir':948 'expireson':204,952 'expiri':703 'fals':198 'file.readallbytesasync':444 'file.writeallbytesasync':436 'foreach':311,325 'found':993 'full':73,1024 'gcm':802,807 'get':269,293,453,634,674 'getcryptographycli':94 'getkey':87,88 'github':1091 'github.com':1094 'github.com/azure/azure-sdk-for-net/tree/main/sdk/keyvault/azure.security.keyvault.keys':1093 'handl':972 'hardwareprotect':197,233,259,925 'hash':577,603,609,617 'hierarchi':80 'hsm':26,51,202,236,921 'hsm-back':201,235,920 'id':284,306,476,632,726 'ident':904 'immedi':396 'implement':931 'input':1151 'instal':52,1046 'intern':578 'key':5,8,10,19,22,29,44,47,69,82,108,124,158,161,165,173,177,183,193,222,230,246,256,267,271,275,281,283,287,303,309,317,322,333,340,344,350,365,377,390,408,412,420,426,434,440,459,465,475,527,529,534,542,546,554,618,630,654,658,669,684,709,711,717,725,730,735,742,747,752,767,771,779,811,869,873,891,897,923,929,932,940,954,978,983,991,1010,1020,1025,1027,1032,1036,1040,1048 'key-backup.bin':437,445 'key.id':285 'key.keytype':289 'key.name':469 'key.properties':361 'key.properties.expireson':351 'key.properties.tags':354 'key.properties.version':292,470 'keyclient':81,134,153,457,716 'keycurvename.p256':232 'keyid':111 'keyoper':945 'keyoperation.decrypt':214 'keyoperation.encrypt':212 'keyprop':313 'keyproperti':312,326,734 'keyprops.enabled':320 'keyprops.name':318 'keyresolv':107,626,723 'keyrotationlifetimeact':694 'keyrotationpolici':677 'keyrotationpolicyaction.rotate':696 'keysiz':195,257 'keytowrap':536,544,552 'keytype.rsa':174 'keyvault':4,76 'keyvaultkey':166,215,238,261,274,296,343,357,413,446,458,662,729,977 'keyvaultnam':122,129 'keyvers':297 'keywrapalgorithm.rsaoaep256':551,559 'kvuri':128,137,156 'latest':272 'learn.microsoft.com':1085,1089 'learn.microsoft.com/azure/key-vault/keys/quick-create-net':1088 'learn.microsoft.com/dotnet/api/azure.security.keyvault.keys':1084 'legaci':797 'librari':15,40 'limit':939,1113 'link':1074 'list':307,321 'manag':17,25,42,50,83,159,718,903,1026 'match':1122 'materi':733,739 'messag':496 'metadata':736,1041 'miss':1159 'multipl':969 'my-ec-key':227 'my-key':981 'my-oct-key':253 'my-rsa-key':170,190,278,300,330,347,374,405,417,431,462,666,681,706 'myvault.vault.azure.net':484,643 'myvault.vault.azure.net/keys/my-key/version':642 'myvault.vault.azure.net/keys/my-rsa-key/version':483 'name':71,126 'net':13,38 'new':133,135,138,145,152,154,188,225,251,479,481,486,537,625,627,640,660,671,693 'notbefor':207 'nuget':1077 'oaep':786,791,880,885 'oct':244,255,799,804,888,894 'octkey':262 'octopt':250,265 'offic':1023 'oper':98,369,371,452,719,722,941,970,1035 'operation.value.scheduledpurgedate':394 'operation.waitforcompletionasync':387 'option':185,744,749,753 'output':1131 'overview':1112 'p':851,858,865 'p30d':698 'p90d':689 'packag':56,60,1053,1059,1065,1071,1078 'permiss':1005,1019,1152 'pin':959 'pkcs1':818,827,836 'plaintext':493,505,653 'polici':676,678,687,710,937 'policy.expiresin':688 'policy.lifetimeactions.add':692 'practic':900 'pre':601 'pre-comput':600 'prefer':905 'princip':141 'product':356,963 'properti':341 'protect':914 'ps256':841 'pss':845 'purg':364,385,392,395 'purgedeletedkey':91 'purpos':715,1045 'quickstart':1087 'randomnumbergenerator.fill':543 'rbac':1004,1016 'read':1039 'reader':1038 'recommend':115 'recov':410 'recoveredkey':414 'refer':713,775,1073,1083 'relat':1042 'requestfailedexcept':985,995,1007 'requir':383,944,1015,1150 'resolut':109 'resolv':110,619,624,629,724 'resolver.resolveasync':639 'resourc':1075 'restor':423,439 'restoredkey':447 'restorekey':93 'result':649,756,759,762,765,769,773 'retriev':266 'reus':967 'review':1143 'role':1017,1018 'rotat':31,655,657,675,686,699,933,936 'rotatedkey':663 'rotatedkey.properties.version':673 'rs256':814 'rs384':823 'rs512':832 'rsa':164,172,182,192,280,302,332,349,376,407,419,433,464,668,683,708,741,783,785,788,790,794,795,815,824,833,842,877,879,882,884 'rsa-oaep':784,789,878,883 'rsa15':793 'rsakey':167 'rsakey.keytype':180 'rsakey.name':178 'rsakey2':216 'rsaoaep':782,876 'rsaoaep256':787,881 'rsaoption':187,219 'rsaoptions.keyoperations.add':211,213 'rsassa':817,826,835,844 'rsassa-pkcs1-v1':816,825,834 'rsassa-pss':843 'safeti':1153 'schedul':391 'scope':1124 'sdk':11,1044,1050 'sdks':1043 'secret':495,908,1056 'secur':3 'sensit':928 'servic':140 'set':924,947,951 'sha':821,830,839,846,853,860,867 'sha256':606 'sha256.computehash':610 'sha256.create':607 'sign':34,103,561,567,573,574,599,761 'signatur':586,595,808 'signaturealgorithm.rs256':583,591,616 'signdata':105 'signhashresult':613 'signresult':579,580,612,760 'signresult.signature':593 'skill':1100,1116 'skill-azure-security-keyvault-keys-dotnet' 'soft':399,912 'soft-delet':398,911 'sourc':1092 'source-sickn33' 'specif':270,294,957,1138 'stabl':65 'start':367 'stop':1144 'string':517 'substitut':1134 'success':1156 'symmetr':245,751 'task':1120 'tenantid':147 'test':1140 'timebeforeexpiri':697 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':1129 'tri':976 'true':199,210,234,260,926 'type':179,288,712,714,780,812,874 'unwrap':526,553,772 'unwrapkey':102 'unwrapresult':555,556,770 'updat':339,685 'updatedkey':358 'updatekeyproperti':89 'uri':74,136,155,482,641 'url':77,1076 'use':27,117,119,604,621,645,902,919,934,956,974,1031,1098,1114 'user':1030 'v1':819,828,837 'valid':596,1139 'var':121,127,131,143,150,186,223,249,605,623 'variabl':67 'vault':9,23,48,70,125,1011,1021,1028,1037 'vault.azure.net':78,130 'verif':36,764 'verifi':104,563,585 'verifydata':106 'verifyresult':587,588,763 'verifyresult.isvalid':597 'version':63,273,291,295,305,323,327,335,661,672,958,961 'version-id':304 'version.createdon':338 'version.version':336 'wait':378 'workflow':1106 'wrap':524,531,545,768,870,892,898 'wrap/unwrap':248 'wrapkey':101 'wrapresult':547,548,766 'wrapresult.encryptedkey':560 'www.nuget.org':1080 'www.nuget.org/packages/azure.security.keyvault.keys':1079","prices":[{"id":"d13ae797-f23b-4dd9-9da8-eccd602ddc88","listingId":"7837808e-6ea1-4aaa-b156-e8c5928f2cf0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:33:05.011Z"}],"sources":[{"listingId":"7837808e-6ea1-4aaa-b156-e8c5928f2cf0","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-security-keyvault-keys-dotnet","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-security-keyvault-keys-dotnet","isPrimary":false,"firstSeenAt":"2026-04-18T21:33:05.011Z","lastSeenAt":"2026-04-24T18:50:33.767Z"}],"details":{"listingId":"7837808e-6ea1-4aaa-b156-e8c5928f2cf0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-security-keyvault-keys-dotnet","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"f500195567a9e37346a48de0b523375812aa70f9","skill_md_path":"skills/azure-security-keyvault-keys-dotnet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-security-keyvault-keys-dotnet"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-security-keyvault-keys-dotnet","description":"Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-security-keyvault-keys-dotnet"},"updatedAt":"2026-04-24T18:50:33.767Z"}}