This library is a collection of crypto utilities for the Valence ecosystem.
The signer functions as a versatile signature provider, which can be constructed utilizing environmental variables.
One option is to use foundry:
PRIVATE_KEY=$(cast wallet private-key --account some-wallet) \
export VALENCE_SIGNER='{"SecretEccNistP256":"'$PRIVATE_KEY'"}'
Once the VALENCE_SIGNER
is set, the ecosystem will authenticate messages originating from the generated secret.
The signer will utilize the rfc-8785 in order to sign JSON requests:
use valence_crypto_utils::{Signer, Ecdsa};
let signer = Signer::try_from_env().unwrap();
let request = r#"{"b": "foo", "a": 42 }"#;
let signature = signer.sign_json(request.as_bytes()).unwrap();
let public = Ecdsa::recover_from_json(&signature, request).unwrap();