1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-07-31 09:24:31 +03:00

Tests signing and verifying from the keystore

This commit is contained in:
Quentin Gliech
2022-08-31 19:17:42 +02:00
parent dc56358184
commit 4e94584a4a

View File

@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
use mas_jose::{
jwk::ParametersInfo,
jwt::{JsonWebSignatureHeader, Jwt},
};
use mas_keystore::PrivateKey;
static PASSWORD: &str = "hunter2";
@ -34,6 +38,18 @@ macro_rules! load_encrypted_test {
let bytes = include_bytes!($path);
let key = PrivateKey::load_encrypted(bytes, PASSWORD).unwrap();
assert!(matches!(key, PrivateKey::$kind(_)), "wrong key type");
let algs = key.possible_algs();
assert_ne!(algs.len(), 0);
for &alg in algs {
let header = JsonWebSignatureHeader::new(alg);
let payload = "hello";
let signer = key.signer_for_alg(alg).unwrap();
let jwt = Jwt::sign(header, payload, &signer).unwrap();
let verifier = key.verifier_for_alg(alg).unwrap();
jwt.verify(&verifier).unwrap();
}
}
};
}