Skip to content

Commit d907bc5

Browse files
committed
Fix error with tests for secp256k1 / ES256K
1 parent d9e4f81 commit d907bc5

File tree

4 files changed

+50
-20
lines changed

4 files changed

+50
-20
lines changed

tests/ecdsa/mod.rs

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -106,39 +106,58 @@ fn ec_x_y() {
106106
#[cfg(feature = "use_pem")]
107107
#[test]
108108
#[wasm_bindgen_test]
109-
fn es256k() {
109+
fn es256k_pem() {
110+
let privkey = include_str!("private_es256k_key.pem");
111+
let pubkey = include_str!("public_es256k_key.pem");
112+
113+
let my_claims = Claims {
114+
sub: "[email protected]".to_string(),
115+
company: "ACME".to_string(),
116+
exp: OffsetDateTime::now_utc().unix_timestamp() + 10000,
117+
};
118+
119+
let encrypted = encode(
120+
&Header::new(Algorithm::ES256K),
121+
&my_claims,
122+
&EncodingKey::from_ec_pem(privkey.as_ref()).unwrap(),
123+
)
124+
.unwrap();
125+
126+
let res = decode::<Claims>(
127+
&encrypted,
128+
&DecodingKey::from_ec_pem(pubkey.as_ref()).unwrap(),
129+
&Validation::new(Algorithm::ES256K),
130+
);
131+
assert!(res.is_ok());
132+
}
133+
134+
#[cfg(feature = "use_pem")]
135+
#[test]
136+
#[wasm_bindgen_test]
137+
fn es256k_jwk() {
110138
use jsonwebtoken::jwk::Jwk;
111-
use k256::schnorr::SigningKey;
112-
use serde_json::json;
113139

114-
// Private key errors out with invalid format or something?
115140
let privkey = include_str!("private_es256k_key.pem");
141+
let pubkey = include_str!("public_es256k_jwk.json");
142+
let jwk: Jwk = serde_json::from_str(pubkey).unwrap();
143+
116144
let my_claims = Claims {
117145
sub: "[email protected]".to_string(),
118146
company: "ACME".to_string(),
119147
exp: OffsetDateTime::now_utc().unix_timestamp() + 10000,
120148
};
121149

122-
let jwk: Jwk = serde_json::from_value(json!({
123-
"kty": "EC",
124-
"x": "PIfJJc3sLXFLWsO6M-Hu7EUpdR56biBrImow8kA4SzY",
125-
"y": "iwxBRgkMP8Pi9cBtINdqictnRuswTOzYiwS4l53x9Rk",
126-
"crv": "secp256k1",
127-
"kid": "ec01",
128-
"alg": "ES256K",
129-
"use": "sig"
130-
})).unwrap();
131-
132150
let encrypted = encode(
133151
&Header::new(Algorithm::ES256K),
134152
&my_claims,
135153
&EncodingKey::from_ec_pem(privkey.as_ref()).unwrap(),
136154
)
137155
.unwrap();
156+
138157
let res = decode::<Claims>(
139158
&encrypted,
140159
&DecodingKey::from_jwk(&jwk).unwrap(),
141-
&Validation::new(Algorithm::ES256),
160+
&Validation::new(Algorithm::ES256K),
142161
);
143162
assert!(res.is_ok());
144163
}

tests/ecdsa/private_es256k_key.pem

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
-----BEGIN EC PRIVATE KEY-----
2-
MHQCAQEEIGNBj1dX7BBxpmxSx/lhf6BN/lNwEwZjeU0FUNFbQPs6oAcGBSuBBAAK
3-
oUQDQgAEPIfJJc3sLXFLWsO6M+Hu7EUpdR56biBrImow8kA4SzaLDEFGCQw/w+L1
4-
wG0g12qJy2dG6zBM7NiLBLiXnfH1GQ==
5-
-----END EC PRIVATE KEY-----
1+
-----BEGIN PRIVATE KEY-----
2+
MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgmSIP8ezE7unJ624FYvIx
3+
jCGK7n5abnzqVKjG9p63MO2hRANCAATd1slq/xOfdan3Oq9gMjCi7x25M7ubpM1H
4+
tVBdj/NyNR9LHW9g6MI94yPvm2c3/fVczqL4lxuhJLGLWQGPYwjG
5+
-----END PRIVATE KEY-----

tests/ecdsa/public_es256k_jwk.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"kty": "EC",
3+
"x": "3dbJav8Tn3Wp9zqvYDIwou8duTO7m6TNR7VQXY_zcjU",
4+
"y": "H0sdb2Dowj3jI--bZzf99VzOoviXG6EksYtZAY9jCMY",
5+
"crv": "secp256k1",
6+
"d": "mSIP8ezE7unJ624FYvIxjCGK7n5abnzqVKjG9p63MO0"
7+
}

tests/ecdsa/public_es256k_key.pem

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE3dbJav8Tn3Wp9zqvYDIwou8duTO7m6TN
3+
R7VQXY/zcjUfSx1vYOjCPeMj75tnN/31XM6i+JcboSSxi1kBj2MIxg==
4+
-----END PUBLIC KEY-----

0 commit comments

Comments
 (0)