azure-keyvault-certificates-rust
Azure Key Vault Certificates library for Rust. Create, manage, and use X.509 certificates including self-signed and CA-issued. Triggers: "keyvault certificates rust", "CertificateClient rust", "create certificate rust", "self-signed certificate rust", "X.509 rust".
Install / Use
npx skills add microsoft/skills --skill azure-keyvault-certificates-rustInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
SecuritySupported Platforms
Our assessment of azure-keyvault-certificates-rust
azure-keyvault-certificates-rust scores 93/100 on our quality scale, 351st of 846 Security skills we index (top 42%).
Its SKILL.md is 7.7 KB long, well organised into 14 sections with 8 code examples: a thorough specification that gives an agent plenty to work with.
With 3,051 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 5 days ago, so azure-keyvault-certificates-rust is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-29. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
azure-keyvault-certificates-rust compared with similar skills
All 4 of these similar skills score higher than azure-keyvault-certificates-rust; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| azure-keyvault-certificates-rust (this skill)by microsoft | 93 | 3.1k | 5d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 7d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 7d ago | SKILL.md |
Frequently asked questions
- How do I install azure-keyvault-certificates-rust?
- Run
npx skills add microsoft/skills --skill azure-keyvault-certificates-rust. The install tabs above show the steps for each supported agent. - Which AI agents does azure-keyvault-certificates-rust work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is azure-keyvault-certificates-rust safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is azure-keyvault-certificates-rust still maintained?
- The repository was last updated 5 days ago, so azure-keyvault-certificates-rust is actively maintained.
Skill content
View source on GitHubname: azure-keyvault-certificates-rust description: | Azure Key Vault Certificates library for Rust. Create, manage, and use X.509 certificates including self-signed and CA-issued. Triggers: "keyvault certificates rust", "CertificateClient rust", "create certificate rust", "self-signed certificate rust", "X.509 rust". license: MIT metadata: author: Microsoft package: azure_security_keyvault_certificates
Azure Key Vault Certificates library for Rust
Manage X.509 certificates for TLS/SSL, code signing, and authentication.
Use this skill when:
- An app needs to create or manage X.509 certificates in Key Vault from Rust
- You need self-signed or CA-issued certificates
- You need long-running operations (LRO) for certificate issuance
- You need to sign data using a certificate's key
IMPORTANT: Only use the official
azure_security_keyvault_certificatescrate published by the azure-sdk crates.io user. Do NOT use unofficial or community crates. Official crates use underscores in names and none have version 0.21.0.
Installation
cargo add azure_security_keyvault_certificates azure_identity tokio futures
If your code uses
azure_coretypes directly, addazure_coretoCargo.toml. If you only useazure_security_keyvault_certificatesre-exports, directazure_coredependency is optional.
Environment Variables
AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/ # Required for all operations
Authentication
Rust Azure SDK code must not use DefaultAzureCredential. The Rust identity crate does not provide that type.
use azure_identity::DeveloperToolsCredential;
use azure_security_keyvault_certificates::CertificateClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Local dev: DeveloperToolsCredential. Production: use ManagedIdentityCredential.
let credential = DeveloperToolsCredential::new(None)?;
let client = CertificateClient::new(
"https://<vault-name>.vault.azure.net/",
credential.clone(),
None,
)?;
let cert = client
.get_certificate("cert-name", None)
.await?
.into_model()?;
println!("Certificate: {:?}", cert.id);
Ok(())
}
Prefer the crate README/examples when checking LRO and poller usage rather than inferring public behavior from generated internal types.
Core Workflow
Create Self-Signed Certificate (LRO)
Creating a certificate is a long-running operation. Poller<T> implements IntoFuture — just .await:
use azure_security_keyvault_certificates::{
models::{
CertificatePolicy, CreateCertificateParameters, IssuerParameters,
X509CertificateProperties,
},
ResourceExt,
};
let policy = CertificatePolicy {
x509_certificate_properties: Some(X509CertificateProperties {
subject: Some("CN=example.com".into()),
..Default::default()
}),
issuer_parameters: Some(IssuerParameters {
name: Some("Self".into()),
..Default::default()
}),
..Default::default()
};
let body = CreateCertificateParameters {
certificate_policy: Some(policy),
..Default::default()
};
// Poller implements IntoFuture — await directly for completion
let cert = client
.begin_create_certificate("cert-name", body.try_into()?, None)?
.await?
.into_model()?;
println!(
"Name: {:?}, Version: {:?}",
cert.resource_id()?.name,
cert.resource_id()?.version,
);
Update Certificate Properties
use azure_security_keyvault_certificates::models::UpdateCertificatePropertiesParameters;
use std::collections::HashMap;
#[allow(clippy::needless_update)]
let params = UpdateCertificatePropertiesParameters {
tags: Some(HashMap::from_iter(vec![("env".into(), "prod".into())])),
..Default::default()
};
client
.update_certificate_properties("cert-name", params.try_into()?, None)
.await?
.into_model()?;
Delete Certificate
client.delete_certificate("cert-name", None).await?;
List Certificates (Pagination)
list_certificate_properties returns a Pager<T> — iterate items directly:
use azure_security_keyvault_certificates::ResourceExt;
use futures::TryStreamExt as _;
let mut pager = client.list_certificate_properties(None)?;
while let Some(cert) = pager.try_next().await? {
println!("Found: {}", cert.resource_id()?.name);
}
Signing with a Certificate's Key
Certificates in Key Vault have an associated key. Use the Key Vault Keys SDK for crypto operations:
use azure_security_keyvault_keys::{
models::{KeyClientSignOptions, SignParameters, SignatureAlgorithm},
KeyClient,
};
let key_client = KeyClient::new(
"https://<vault-name>.vault.azure.net/",
credential.clone(),
None,
)?;
// Sign with the certificate's EC key
let digest = vec![0u8; 32]; // SHA-256 digest
let body = SignParameters {
algorithm: Some(SignatureAlgorithm::Es256),
value: Some(digest),
};
let result = key_client
.sign(
"cert-name",
body.try_into()?,
Some(KeyClientSignOptions {
key_version: Some("<certificate-version>".to_string()),
..Default::default()
}),
)
.await?
.into_model()?;
println!("Signature: {:?}", result.result);
Certificate Formats
| Format | Content Type | Use Case |
| ------- | ------------------------ | ----------------------------------- |
| PKCS#12 | application/x-pkcs12 | Bundled cert + private key |
| PEM | application/x-pem-file | Base64-encoded, common in Linux/web |
RBAC Roles
For Entra ID auth, assign one of these roles:
| Role | Access |
| -------------------------------- | --------------------------- |
| Key Vault Certificate User | Use certificates |
| Key Vault Certificates Officer | Full certificate management |
Best Practices
- Use
cargo addto manage dependencies, never editCargo.tomldirectly. Add and remove Rust SDK dependencies with cargo commands instead of manual manifest edits. - Add
azure_coreonly when importingazure_coretypes directly. If your code importsazure_core::http::Url,azure_core::http::RequestContent, orazure_core::error::ErrorKind, includeazure_core; otherwise a direct dependency is optional. - Use
DeveloperToolsCredentialfor local dev,ManagedIdentityCredentialfor production — Rust does not provide a singleDefaultAzureCredentialtype - Never hardcode credentials — use environment variables or managed identity
- Use
..Default::default()with#[allow(clippy::needless_update)]for model struct updates - Use
ResourceExtto extract certificate name/version from IDs - LROs —
begin_create_certificatereturns aPoller; just.awaitfor completion (clients should rarely poll for status) - Reuse clients —
CertificateClientis thread-safe; create once, share across tasks - Run
cargo clippy -- -D warningswhen the prompt, eval, or CI expects lint-clean output
Reference Links
| Resource | Link | | ------------- | ------------------------------------------------------------------------------------------------------- | | API Reference | https://docs.rs/azure_security_keyvault_certificates/latest/azure_security_keyvault_certificates | | crates.io | https://crates.io/crates/azure_security_keyvault_certificates | | Source Code | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/keyvault/azure_security_keyvault_certificates |
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
