diff --git a/Cargo.lock b/Cargo.lock index 9f4d961..db24bb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -606,7 +606,7 @@ dependencies = [ [[package]] name = "card-cli" -version = "1.13.16" +version = "1.13.17" dependencies = [ "aes-gcm-stream", "authenticator 0.3.1", diff --git a/Cargo.toml b/Cargo.toml index b86f4ac..173bb3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "card-cli" -version = "1.13.16" +version = "1.13.17" authors = ["Hatter Jiang "] edition = "2018" diff --git a/src/cmd_sign_jwt_piv.rs b/src/cmd_sign_jwt_piv.rs index 808c3a6..6932204 100644 --- a/src/cmd_sign_jwt_piv.rs +++ b/src/cmd_sign_jwt_piv.rs @@ -199,7 +199,23 @@ pub fn build_jwt_parts( warning!("Claim '{}' do not contains ':'", claim); } Some((k, v)) => { - jwt_claims.insert(k, v); + match jwt_claims.get_mut(&k) { + None => { jwt_claims.insert(k, v); }, + Some(val) => { + match val { + Value::Array(arr) => { + arr.push(v); + } + _ => { + let mut arr = vec![]; + arr.push(val.clone()); + arr.push(v); + jwt_claims.insert(k, Value::Array(arr)); + } + } + } + } + // jwt_claims.insert(k, v); } } }