From e1358d70a412e8a6200933678de9555b22a2ff52 Mon Sep 17 00:00:00 2001 From: Rob Sliwa Date: Mon, 29 Jan 2024 09:28:10 -0500 Subject: [PATCH] Bumped version and updated README to add example usage for claims defined with YAML. --- Cargo.toml | 2 +- README.md | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e0bde35..d6650da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sdjwt" -version = "0.7.1" +version = "0.7.2" authors = ["Rob Sliwa "] license = "MIT" readme = "README.md" diff --git a/README.md b/README.md index e560f31..4e4101b 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,40 @@ fn main() -> Result<(), Error> { } ``` +Issuer can also create claims using YAML and marking selective disclosures with !sd tag. + +Example: +```rust +const ISSUER_CLAIMS_YAML: &str = r#" + sub: user_42 + !sd given_name: John + !sd family_name: Doe + email: johndoe@example.com + phone_number: +1-202-555-0101 + phone_number_verified: true + address: + !sd street_address: 123 Main St + !sd locality: Anytown + region: Anystate + country: US + birthdate: 1940-01-01 + updated_at: 1570000000 + nationalities: + - !sd US + - !sd DE + "#; + +let (claims, tagged_paths) = parse_yaml(TEST_CLAIMS_YAML)?; +let mut issuer = Issuer::new(claims)?; +let issuer_sd_jwt = issuer + .require_key_binding(Jwk::from_value(holder_jwk)?) + .iter_disclosable(tagged_paths.iter()) + .encode(&KeyForEncoding::from_rsa_pem( + issuer_private_key.as_bytes(), + )?)?; +println!("issuer_sd_jwt: {:?}", issuer_sd_jwt); +``` + ## Holder The Holder module represents a Holder, presenting SD-JWT including selected disclosures.