Rename utils::crypto module to crypto_rsa
This commit is contained in:
parent
4d85638d8c
commit
c11daa21a0
13 changed files with 49 additions and 46 deletions
|
@ -18,7 +18,7 @@ use crate::models::profiles::types::{
|
||||||
PaymentOption,
|
PaymentOption,
|
||||||
};
|
};
|
||||||
use crate::models::users::types::User;
|
use crate::models::users::types::User;
|
||||||
use crate::utils::crypto::{deserialize_private_key, get_public_key_pem};
|
use crate::utils::crypto_rsa::{deserialize_private_key, get_public_key_pem};
|
||||||
use crate::utils::files::get_file_url;
|
use crate::utils::files::get_file_url;
|
||||||
use crate::utils::urls::get_hostname;
|
use crate::utils::urls::get_hostname;
|
||||||
use super::attachments::{
|
use super::attachments::{
|
||||||
|
@ -346,8 +346,8 @@ pub fn get_instance_actor(
|
||||||
mod tests {
|
mod tests {
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use crate::models::profiles::types::DbActorProfile;
|
use crate::models::profiles::types::DbActorProfile;
|
||||||
use crate::utils::crypto::{
|
use crate::utils::crypto_rsa::{
|
||||||
generate_weak_private_key,
|
generate_weak_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
};
|
};
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -378,7 +378,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_local_actor() {
|
fn test_local_actor() {
|
||||||
let private_key = generate_weak_private_key().unwrap();
|
let private_key = generate_weak_rsa_key().unwrap();
|
||||||
let private_key_pem = serialize_private_key(&private_key).unwrap();
|
let private_key_pem = serialize_private_key(&private_key).unwrap();
|
||||||
let profile = DbActorProfile {
|
let profile = DbActorProfile {
|
||||||
username: "testuser".to_string(),
|
username: "testuser".to_string(),
|
||||||
|
@ -418,7 +418,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_instance_actor() {
|
fn test_instance_actor() {
|
||||||
let instance_url = Url::parse("https://example.com/").unwrap();
|
let instance_url = Url::parse("https://example.com/").unwrap();
|
||||||
let instance_rsa_key = generate_weak_private_key().unwrap();
|
let instance_rsa_key = generate_weak_rsa_key().unwrap();
|
||||||
let instance = Instance::new(instance_url, instance_rsa_key);
|
let instance = Instance::new(instance_url, instance_rsa_key);
|
||||||
let actor = get_instance_actor(&instance).unwrap();
|
let actor = get_instance_actor(&instance).unwrap();
|
||||||
assert_eq!(actor.id, "https://example.com/actor");
|
assert_eq!(actor.id, "https://example.com/actor");
|
||||||
|
|
|
@ -23,7 +23,7 @@ use crate::models::profiles::queries::{
|
||||||
search_profiles_by_did_only,
|
search_profiles_by_did_only,
|
||||||
};
|
};
|
||||||
use crate::models::profiles::types::DbActorProfile;
|
use crate::models::profiles::types::DbActorProfile;
|
||||||
use crate::utils::crypto::deserialize_public_key;
|
use crate::utils::crypto_rsa::deserialize_public_key;
|
||||||
use super::fetcher::helpers::get_or_import_profile_by_actor_id;
|
use super::fetcher::helpers::get_or_import_profile_by_actor_id;
|
||||||
use super::receiver::HandlerError;
|
use super::receiver::HandlerError;
|
||||||
|
|
||||||
|
|
|
@ -103,8 +103,8 @@ pub async fn prepare_signed_update_person(
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::models::profiles::types::DbActorProfile;
|
use crate::models::profiles::types::DbActorProfile;
|
||||||
use crate::utils::crypto::{
|
use crate::utils::crypto_rsa::{
|
||||||
generate_weak_private_key,
|
generate_weak_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
};
|
};
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -113,7 +113,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_build_update_person() {
|
fn test_build_update_person() {
|
||||||
let private_key = generate_weak_private_key().unwrap();
|
let private_key = generate_weak_rsa_key().unwrap();
|
||||||
let private_key_pem = serialize_private_key(&private_key).unwrap();
|
let private_key_pem = serialize_private_key(&private_key).unwrap();
|
||||||
let user = User {
|
let user = User {
|
||||||
private_key: private_key_pem,
|
private_key: private_key_pem,
|
||||||
|
|
|
@ -18,7 +18,7 @@ use crate::json_signatures::create::{
|
||||||
JsonSignatureError,
|
JsonSignatureError,
|
||||||
};
|
};
|
||||||
use crate::models::users::types::User;
|
use crate::models::users::types::User;
|
||||||
use crate::utils::crypto::deserialize_private_key;
|
use crate::utils::crypto_rsa::deserialize_private_key;
|
||||||
use crate::utils::urls::get_hostname;
|
use crate::utils::urls::get_hostname;
|
||||||
use super::actors::types::Actor;
|
use super::actors::types::Actor;
|
||||||
use super::constants::{AP_MEDIA_TYPE, ACTOR_KEY_SUFFIX};
|
use super::constants::{AP_MEDIA_TYPE, ACTOR_KEY_SUFFIX};
|
||||||
|
|
|
@ -29,8 +29,8 @@ use crate::models::users::queries::{
|
||||||
};
|
};
|
||||||
use crate::monero::wallet::create_monero_wallet;
|
use crate::monero::wallet::create_monero_wallet;
|
||||||
use crate::utils::{
|
use crate::utils::{
|
||||||
crypto::{
|
crypto_rsa::{
|
||||||
generate_private_key,
|
generate_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
},
|
},
|
||||||
files::remove_files,
|
files::remove_files,
|
||||||
|
@ -69,7 +69,7 @@ pub struct GenerateRsaKey;
|
||||||
|
|
||||||
impl GenerateRsaKey {
|
impl GenerateRsaKey {
|
||||||
pub fn execute(&self) -> () {
|
pub fn execute(&self) -> () {
|
||||||
let private_key = generate_private_key().unwrap();
|
let private_key = generate_rsa_key().unwrap();
|
||||||
let private_key_str = serialize_private_key(&private_key).unwrap();
|
let private_key_str = serialize_private_key(&private_key).unwrap();
|
||||||
println!("{}", private_key_str);
|
println!("{}", private_key_str);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,9 @@ use url::Url;
|
||||||
use crate::activitypub::constants::ACTOR_KEY_SUFFIX;
|
use crate::activitypub::constants::ACTOR_KEY_SUFFIX;
|
||||||
use crate::activitypub::identifiers::local_instance_actor_id;
|
use crate::activitypub::identifiers::local_instance_actor_id;
|
||||||
use crate::errors::ConversionError;
|
use crate::errors::ConversionError;
|
||||||
use crate::utils::crypto::{
|
use crate::utils::crypto_rsa::{
|
||||||
deserialize_private_key,
|
deserialize_private_key,
|
||||||
generate_private_key,
|
generate_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
};
|
};
|
||||||
use crate::utils::files::{set_file_permissions, write_file};
|
use crate::utils::files::{set_file_permissions, write_file};
|
||||||
|
@ -235,7 +235,7 @@ fn read_instance_rsa_key(storage_dir: &Path) -> RsaPrivateKey {
|
||||||
.expect("failed to read instance RSA key");
|
.expect("failed to read instance RSA key");
|
||||||
private_key
|
private_key
|
||||||
} else {
|
} else {
|
||||||
let private_key = generate_private_key()
|
let private_key = generate_rsa_key()
|
||||||
.expect("failed to generate RSA key");
|
.expect("failed to generate RSA key");
|
||||||
let private_key_str = serialize_private_key(&private_key)
|
let private_key_str = serialize_private_key(&private_key)
|
||||||
.expect("failed to serialize RSA key");
|
.expect("failed to serialize RSA key");
|
||||||
|
@ -284,13 +284,13 @@ pub fn parse_config() -> Config {
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::utils::crypto::generate_weak_private_key;
|
use crate::utils::crypto_rsa::generate_weak_rsa_key;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_instance_url_https_dns() {
|
fn test_instance_url_https_dns() {
|
||||||
let instance_url = Url::parse("https://example.com/").unwrap();
|
let instance_url = Url::parse("https://example.com/").unwrap();
|
||||||
let instance_rsa_key = generate_weak_private_key().unwrap();
|
let instance_rsa_key = generate_weak_rsa_key().unwrap();
|
||||||
let instance = Instance {
|
let instance = Instance {
|
||||||
_url: instance_url,
|
_url: instance_url,
|
||||||
_version: "1.0.0".to_string(),
|
_version: "1.0.0".to_string(),
|
||||||
|
@ -307,7 +307,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_instance_url_http_ipv4() {
|
fn test_instance_url_http_ipv4() {
|
||||||
let instance_url = Url::parse("http://1.2.3.4:3777/").unwrap();
|
let instance_url = Url::parse("http://1.2.3.4:3777/").unwrap();
|
||||||
let instance_rsa_key = generate_weak_private_key().unwrap();
|
let instance_rsa_key = generate_weak_rsa_key().unwrap();
|
||||||
let instance = Instance {
|
let instance = Instance {
|
||||||
_url: instance_url,
|
_url: instance_url,
|
||||||
_version: "1.0.0".to_string(),
|
_version: "1.0.0".to_string(),
|
||||||
|
|
|
@ -2,7 +2,7 @@ use actix_web::http::Method;
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use rsa::RsaPrivateKey;
|
use rsa::RsaPrivateKey;
|
||||||
|
|
||||||
use crate::utils::crypto::{sign_message, get_message_digest};
|
use crate::utils::crypto_rsa::{get_message_digest, sign_message};
|
||||||
|
|
||||||
const HTTP_SIGNATURE_ALGORITHM: &str = "rsa-sha256";
|
const HTTP_SIGNATURE_ALGORITHM: &str = "rsa-sha256";
|
||||||
const HTTP_SIGNATURE_DATE_FORMAT: &str = "%a, %d %b %Y %T GMT";
|
const HTTP_SIGNATURE_DATE_FORMAT: &str = "%a, %d %b %Y %T GMT";
|
||||||
|
@ -88,13 +88,13 @@ pub fn create_http_signature(
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::utils::crypto::generate_weak_private_key;
|
use crate::utils::crypto_rsa::generate_weak_rsa_key;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_create_signature_get() {
|
fn test_create_signature_get() {
|
||||||
let request_url = "https://example.org/inbox";
|
let request_url = "https://example.org/inbox";
|
||||||
let signer_key = generate_weak_private_key().unwrap();
|
let signer_key = generate_weak_rsa_key().unwrap();
|
||||||
let signer_key_id = "https://myserver.org/actor#main-key";
|
let signer_key_id = "https://myserver.org/actor#main-key";
|
||||||
|
|
||||||
let headers = create_http_signature(
|
let headers = create_http_signature(
|
||||||
|
@ -123,7 +123,7 @@ mod tests {
|
||||||
fn test_create_signature_post() {
|
fn test_create_signature_post() {
|
||||||
let request_url = "https://example.org/inbox";
|
let request_url = "https://example.org/inbox";
|
||||||
let request_body = "{}";
|
let request_body = "{}";
|
||||||
let signer_key = generate_weak_private_key().unwrap();
|
let signer_key = generate_weak_rsa_key().unwrap();
|
||||||
let signer_key_id = "https://myserver.org/actor#main-key";
|
let signer_key_id = "https://myserver.org/actor#main-key";
|
||||||
|
|
||||||
let result = create_http_signature(
|
let result = create_http_signature(
|
||||||
|
|
|
@ -5,7 +5,7 @@ use chrono::{DateTime, Duration, TimeZone, Utc};
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use rsa::RsaPublicKey;
|
use rsa::RsaPublicKey;
|
||||||
|
|
||||||
use crate::utils::crypto::verify_signature;
|
use crate::utils::crypto_rsa::verify_rsa_signature;
|
||||||
|
|
||||||
#[derive(thiserror::Error, Debug)]
|
#[derive(thiserror::Error, Debug)]
|
||||||
pub enum HttpSignatureVerificationError {
|
pub enum HttpSignatureVerificationError {
|
||||||
|
@ -120,7 +120,7 @@ pub fn verify_http_signature(
|
||||||
if expires_at < Utc::now() {
|
if expires_at < Utc::now() {
|
||||||
log::warn!("signature has expired");
|
log::warn!("signature has expired");
|
||||||
};
|
};
|
||||||
let is_valid_signature = verify_signature(
|
let is_valid_signature = verify_rsa_signature(
|
||||||
signer_key,
|
signer_key,
|
||||||
&signature_data.message,
|
&signature_data.message,
|
||||||
&signature_data.signature,
|
&signature_data.signature,
|
||||||
|
@ -139,7 +139,7 @@ mod tests {
|
||||||
Uri,
|
Uri,
|
||||||
};
|
};
|
||||||
use crate::http_signatures::create::create_http_signature;
|
use crate::http_signatures::create::create_http_signature;
|
||||||
use crate::utils::crypto::generate_weak_private_key;
|
use crate::utils::crypto_rsa::generate_weak_rsa_key;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -185,7 +185,7 @@ mod tests {
|
||||||
let request_method = Method::POST;
|
let request_method = Method::POST;
|
||||||
let request_url = "https://example.org/inbox";
|
let request_url = "https://example.org/inbox";
|
||||||
let request_body = "{}";
|
let request_body = "{}";
|
||||||
let signer_key = generate_weak_private_key().unwrap();
|
let signer_key = generate_weak_rsa_key().unwrap();
|
||||||
let signer_key_id = "https://myserver.org/actor#main-key";
|
let signer_key_id = "https://myserver.org/actor#main-key";
|
||||||
let signed_headers = create_http_signature(
|
let signed_headers = create_http_signature(
|
||||||
request_method.clone(),
|
request_method.clone(),
|
||||||
|
|
|
@ -16,7 +16,7 @@ use crate::utils::canonicalization::{
|
||||||
canonicalize_object,
|
canonicalize_object,
|
||||||
CanonicalizationError,
|
CanonicalizationError,
|
||||||
};
|
};
|
||||||
use crate::utils::crypto::sign_message;
|
use crate::utils::crypto_rsa::sign_message;
|
||||||
|
|
||||||
pub(super) const PROOF_KEY: &str = "proof";
|
pub(super) const PROOF_KEY: &str = "proof";
|
||||||
pub(super) const PROOF_PURPOSE: &str = "assertionMethod";
|
pub(super) const PROOF_PURPOSE: &str = "assertionMethod";
|
||||||
|
@ -130,12 +130,12 @@ pub fn is_object_signed(object: &Value) -> bool {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use crate::utils::crypto::generate_weak_private_key;
|
use crate::utils::crypto_rsa::generate_weak_rsa_key;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_sign_object() {
|
fn test_sign_object() {
|
||||||
let signer_key = generate_weak_private_key().unwrap();
|
let signer_key = generate_weak_rsa_key().unwrap();
|
||||||
let signer_key_id = "https://example.org/users/test#main-key";
|
let signer_key_id = "https://example.org/users/test#main-key";
|
||||||
let object = json!({
|
let object = json!({
|
||||||
"type": "Create",
|
"type": "Create",
|
||||||
|
|
|
@ -17,7 +17,7 @@ use crate::utils::canonicalization::{
|
||||||
canonicalize_object,
|
canonicalize_object,
|
||||||
CanonicalizationError,
|
CanonicalizationError,
|
||||||
};
|
};
|
||||||
use crate::utils::crypto::verify_signature;
|
use crate::utils::crypto_rsa::verify_rsa_signature;
|
||||||
use super::create::{
|
use super::create::{
|
||||||
IntegrityProof,
|
IntegrityProof,
|
||||||
PROOF_KEY,
|
PROOF_KEY,
|
||||||
|
@ -103,7 +103,7 @@ pub fn verify_rsa_json_signature(
|
||||||
signature_data: &SignatureData,
|
signature_data: &SignatureData,
|
||||||
signer_key: &RsaPublicKey,
|
signer_key: &RsaPublicKey,
|
||||||
) -> Result<(), VerificationError> {
|
) -> Result<(), VerificationError> {
|
||||||
let is_valid_signature = verify_signature(
|
let is_valid_signature = verify_rsa_signature(
|
||||||
signer_key,
|
signer_key,
|
||||||
&signature_data.message,
|
&signature_data.message,
|
||||||
&signature_data.signature,
|
&signature_data.signature,
|
||||||
|
@ -136,7 +136,7 @@ pub fn verify_minisign_json_signature(
|
||||||
mod tests {
|
mod tests {
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use crate::json_signatures::create::sign_object;
|
use crate::json_signatures::create::sign_object;
|
||||||
use crate::utils::crypto::generate_weak_private_key;
|
use crate::utils::crypto_rsa::generate_weak_rsa_key;
|
||||||
use crate::utils::currencies::Currency;
|
use crate::utils::currencies::Currency;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_create_and_verify_signature() {
|
fn test_create_and_verify_signature() {
|
||||||
let signer_key = generate_weak_private_key().unwrap();
|
let signer_key = generate_weak_rsa_key().unwrap();
|
||||||
let signer_key_id = "https://example.org/users/test#main-key";
|
let signer_key_id = "https://example.org/users/test#main-key";
|
||||||
let object = json!({
|
let object = json!({
|
||||||
"type": "Create",
|
"type": "Create",
|
||||||
|
|
|
@ -74,8 +74,8 @@ use crate::models::users::types::UserCreateData;
|
||||||
use crate::utils::{
|
use crate::utils::{
|
||||||
caip2::ChainId,
|
caip2::ChainId,
|
||||||
canonicalization::canonicalize_object,
|
canonicalization::canonicalize_object,
|
||||||
crypto::{
|
crypto_rsa::{
|
||||||
generate_private_key,
|
generate_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
},
|
},
|
||||||
currencies::Currency,
|
currencies::Currency,
|
||||||
|
@ -156,7 +156,7 @@ pub async fn create_account(
|
||||||
};
|
};
|
||||||
|
|
||||||
// Generate RSA private key for actor
|
// Generate RSA private key for actor
|
||||||
let private_key = match web::block(generate_private_key).await {
|
let private_key = match web::block(generate_rsa_key).await {
|
||||||
Ok(Ok(private_key)) => private_key,
|
Ok(Ok(private_key)) => private_key,
|
||||||
_ => return Err(HttpError::InternalError),
|
_ => return Err(HttpError::InternalError),
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,14 +2,14 @@ use rsa::{Hash, PaddingScheme, PublicKey, RsaPrivateKey, RsaPublicKey};
|
||||||
use rsa::pkcs8::{FromPrivateKey, FromPublicKey, ToPrivateKey, ToPublicKey};
|
use rsa::pkcs8::{FromPrivateKey, FromPublicKey, ToPrivateKey, ToPublicKey};
|
||||||
use sha2::{Digest, Sha256};
|
use sha2::{Digest, Sha256};
|
||||||
|
|
||||||
pub fn generate_private_key() -> Result<RsaPrivateKey, rsa::errors::Error> {
|
pub fn generate_rsa_key() -> Result<RsaPrivateKey, rsa::errors::Error> {
|
||||||
let mut rng = rand::rngs::OsRng;
|
let mut rng = rand::rngs::OsRng;
|
||||||
let bits = 2048;
|
let bits = 2048;
|
||||||
RsaPrivateKey::new(&mut rng, bits)
|
RsaPrivateKey::new(&mut rng, bits)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub fn generate_weak_private_key() -> Result<RsaPrivateKey, rsa::errors::Error> {
|
pub fn generate_weak_rsa_key() -> Result<RsaPrivateKey, rsa::errors::Error> {
|
||||||
use rand::SeedableRng;
|
use rand::SeedableRng;
|
||||||
let mut rng = rand::rngs::SmallRng::seed_from_u64(0);
|
let mut rng = rand::rngs::SmallRng::seed_from_u64(0);
|
||||||
let bits = 512;
|
let bits = 512;
|
||||||
|
@ -64,7 +64,7 @@ pub fn get_message_digest(message: &str) -> String {
|
||||||
digest_b64
|
digest_b64
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn verify_signature(
|
pub fn verify_rsa_signature(
|
||||||
public_key: &RsaPublicKey,
|
public_key: &RsaPublicKey,
|
||||||
message: &str,
|
message: &str,
|
||||||
signature_b64: &str,
|
signature_b64: &str,
|
||||||
|
@ -82,7 +82,6 @@ pub fn verify_signature(
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use rand::rngs::OsRng;
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -95,20 +94,24 @@ YsFtrgWDQ/s8k86sNBU+Ce2GOL7seh46kyAWgJeohh4Rcrr23rftHbvxOcRM8VzYuCeb1DgVhPGtA0xU
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_public_key_serialization_deserialization() {
|
fn test_public_key_serialization_deserialization() {
|
||||||
let private_key = RsaPrivateKey::new(&mut OsRng, 512).unwrap();
|
let private_key = generate_weak_rsa_key().unwrap();
|
||||||
let public_key_pem = get_public_key_pem(&private_key).unwrap();
|
let public_key_pem = get_public_key_pem(&private_key).unwrap();
|
||||||
let public_key = deserialize_public_key(&public_key_pem).unwrap();
|
let public_key = deserialize_public_key(&public_key_pem).unwrap();
|
||||||
assert_eq!(public_key, RsaPublicKey::from(&private_key));
|
assert_eq!(public_key, RsaPublicKey::from(&private_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_verify_signature() {
|
fn test_verify_rsa_signature() {
|
||||||
let private_key = RsaPrivateKey::new(&mut OsRng, 512).unwrap();
|
let private_key = generate_weak_rsa_key().unwrap();
|
||||||
let message = "test".to_string();
|
let message = "test".to_string();
|
||||||
let signature = sign_message(&private_key, &message).unwrap();
|
let signature = sign_message(&private_key, &message).unwrap();
|
||||||
let public_key = RsaPublicKey::from(&private_key);
|
let public_key = RsaPublicKey::from(&private_key);
|
||||||
|
|
||||||
let is_valid = verify_signature(&public_key, &message, &signature).unwrap();
|
let is_valid = verify_rsa_signature(
|
||||||
|
&public_key,
|
||||||
|
&message,
|
||||||
|
&signature,
|
||||||
|
).unwrap();
|
||||||
assert_eq!(is_valid, true);
|
assert_eq!(is_valid, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
pub mod caip2;
|
pub mod caip2;
|
||||||
pub mod canonicalization;
|
pub mod canonicalization;
|
||||||
pub mod crypto;
|
pub mod crypto_rsa;
|
||||||
pub mod currencies;
|
pub mod currencies;
|
||||||
pub mod files;
|
pub mod files;
|
||||||
pub mod html;
|
pub mod html;
|
||||||
|
|
Loading…
Reference in a new issue