Remove verify_eip191_identity_proof and verify_ed25519_signature functions
This commit is contained in:
parent
1d4bb200d2
commit
43b56be722
5 changed files with 25 additions and 41 deletions
|
@ -6,11 +6,14 @@ use crate::activitypub::vocabulary::{
|
||||||
PROPERTY_VALUE,
|
PROPERTY_VALUE,
|
||||||
};
|
};
|
||||||
use crate::errors::ValidationError;
|
use crate::errors::ValidationError;
|
||||||
use crate::ethereum::identity::verify_eip191_identity_proof;
|
use crate::ethereum::identity::verify_eip191_signature;
|
||||||
use crate::identity::{
|
use crate::identity::{
|
||||||
claims::create_identity_claim,
|
claims::create_identity_claim,
|
||||||
did::Did,
|
did::Did,
|
||||||
minisign::verify_minisign_identity_proof,
|
minisign::{
|
||||||
|
parse_minisign_signature,
|
||||||
|
verify_minisign_signature,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
use crate::json_signatures::proofs::{
|
use crate::json_signatures::proofs::{
|
||||||
PROOF_TYPE_ID_EIP191,
|
PROOF_TYPE_ID_EIP191,
|
||||||
|
@ -68,17 +71,19 @@ pub fn parse_identity_proof(
|
||||||
if !matches!(proof_type, IdentityProofType::LegacyMinisignIdentityProof) {
|
if !matches!(proof_type, IdentityProofType::LegacyMinisignIdentityProof) {
|
||||||
return Err(ValidationError("incorrect proof type"));
|
return Err(ValidationError("incorrect proof type"));
|
||||||
};
|
};
|
||||||
verify_minisign_identity_proof(
|
let signature_bin = parse_minisign_signature(signature)
|
||||||
|
.map_err(|_| ValidationError("invalid signature encoding"))?;
|
||||||
|
verify_minisign_signature(
|
||||||
did_key,
|
did_key,
|
||||||
&message,
|
&message,
|
||||||
signature,
|
&signature_bin,
|
||||||
).map_err(|_| ValidationError("invalid identity proof"))?;
|
).map_err(|_| ValidationError("invalid identity proof"))?;
|
||||||
},
|
},
|
||||||
Did::Pkh(ref did_pkh) => {
|
Did::Pkh(ref did_pkh) => {
|
||||||
if !matches!(proof_type, IdentityProofType::LegacyEip191IdentityProof) {
|
if !matches!(proof_type, IdentityProofType::LegacyEip191IdentityProof) {
|
||||||
return Err(ValidationError("incorrect proof type"));
|
return Err(ValidationError("incorrect proof type"));
|
||||||
};
|
};
|
||||||
verify_eip191_identity_proof(
|
verify_eip191_signature(
|
||||||
did_pkh,
|
did_pkh,
|
||||||
&message,
|
&message,
|
||||||
signature,
|
signature,
|
||||||
|
|
|
@ -24,15 +24,6 @@ pub fn verify_eip191_signature(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Verifies proof of address ownership
|
|
||||||
pub fn verify_eip191_identity_proof(
|
|
||||||
did: &DidPkh,
|
|
||||||
message: &str,
|
|
||||||
signature_hex: &str,
|
|
||||||
) -> Result<(), Eip191VerificationError> {
|
|
||||||
verify_eip191_signature(did, message, signature_hex)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use web3::signing::{Key, SecretKeyRef};
|
use web3::signing::{Key, SecretKeyRef};
|
||||||
|
@ -49,7 +40,7 @@ mod tests {
|
||||||
const ETHEREUM: Currency = Currency::Ethereum;
|
const ETHEREUM: Currency = Currency::Ethereum;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_verify_eip191_identity_proof() {
|
fn test_verify_eip191_signature() {
|
||||||
let message = "test";
|
let message = "test";
|
||||||
let secret_key = generate_ecdsa_key();
|
let secret_key = generate_ecdsa_key();
|
||||||
let secret_key_ref = SecretKeyRef::new(&secret_key);
|
let secret_key_ref = SecretKeyRef::new(&secret_key);
|
||||||
|
@ -58,7 +49,7 @@ mod tests {
|
||||||
let did = DidPkh::from_address(ÐEREUM, &address);
|
let did = DidPkh::from_address(ÐEREUM, &address);
|
||||||
let signature = sign_message(&secret_key_str, message.as_bytes())
|
let signature = sign_message(&secret_key_str, message.as_bytes())
|
||||||
.unwrap().to_string();
|
.unwrap().to_string();
|
||||||
let result = verify_eip191_identity_proof(&did, message, &signature);
|
let result = verify_eip191_signature(&did, message, &signature);
|
||||||
assert_eq!(result.is_ok(), true);
|
assert_eq!(result.is_ok(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,23 +105,7 @@ pub enum VerificationError {
|
||||||
SignatureError(#[from] SignatureError),
|
SignatureError(#[from] SignatureError),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn verify_minisign_identity_proof(
|
pub fn verify_minisign_signature(
|
||||||
signer: &DidKey,
|
|
||||||
message: &str,
|
|
||||||
signature: &str,
|
|
||||||
) -> Result<(), VerificationError> {
|
|
||||||
let ed25519_key = signer.try_ed25519_key()?;
|
|
||||||
let ed25519_signature = parse_minisign_signature(signature)?;
|
|
||||||
let message = format!("{}\n", message);
|
|
||||||
_verify_ed25519_signature(
|
|
||||||
&message,
|
|
||||||
ed25519_key,
|
|
||||||
ed25519_signature,
|
|
||||||
)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn verify_ed25519_signature(
|
|
||||||
signer: &DidKey,
|
signer: &DidKey,
|
||||||
message: &str,
|
message: &str,
|
||||||
signature: &[u8],
|
signature: &[u8],
|
||||||
|
@ -150,6 +134,8 @@ mod tests {
|
||||||
let minisign_signature =
|
let minisign_signature =
|
||||||
"RUSA58rRENpGFVKxdZGMG1WdIJ+dlyP83qOqw6GP0H/Li6Brug2A3mFKLtleIRLi6IIG0smzOlX5CEsisNnc897OUHIOSNLsQQs=";
|
"RUSA58rRENpGFVKxdZGMG1WdIJ+dlyP83qOqw6GP0H/Li6Brug2A3mFKLtleIRLi6IIG0smzOlX5CEsisNnc897OUHIOSNLsQQs=";
|
||||||
let signer = minisign_key_to_did(minisign_key).unwrap();
|
let signer = minisign_key_to_did(minisign_key).unwrap();
|
||||||
verify_minisign_identity_proof(&signer, message, minisign_signature).unwrap();
|
let signature_bin = parse_minisign_signature(minisign_signature).unwrap();
|
||||||
|
let result = verify_minisign_signature(&signer, message, &signature_bin);
|
||||||
|
assert_eq!(result.is_ok(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ use crate::identity::{
|
||||||
did::Did,
|
did::Did,
|
||||||
did_key::DidKey,
|
did_key::DidKey,
|
||||||
did_pkh::DidPkh,
|
did_pkh::DidPkh,
|
||||||
minisign::verify_ed25519_signature,
|
minisign::verify_minisign_signature,
|
||||||
};
|
};
|
||||||
use super::create::{
|
use super::create::{
|
||||||
IntegrityProof,
|
IntegrityProof,
|
||||||
|
@ -126,7 +126,7 @@ pub fn verify_ed25519_json_signature(
|
||||||
message: &str,
|
message: &str,
|
||||||
signature: &[u8],
|
signature: &[u8],
|
||||||
) -> Result<(), VerificationError> {
|
) -> Result<(), VerificationError> {
|
||||||
verify_ed25519_signature(signer, message, signature)
|
verify_minisign_signature(signer, message, signature)
|
||||||
.map_err(|_| VerificationError::InvalidSignature)
|
.map_err(|_| VerificationError::InvalidSignature)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ use crate::ethereum::{
|
||||||
contracts::ContractSet,
|
contracts::ContractSet,
|
||||||
eip4361::verify_eip4361_signature,
|
eip4361::verify_eip4361_signature,
|
||||||
gate::is_allowed_user,
|
gate::is_allowed_user,
|
||||||
identity::verify_eip191_identity_proof,
|
identity::verify_eip191_signature,
|
||||||
};
|
};
|
||||||
use crate::http::get_request_base_url;
|
use crate::http::get_request_base_url;
|
||||||
use crate::identity::{
|
use crate::identity::{
|
||||||
|
@ -47,7 +47,7 @@ use crate::identity::{
|
||||||
minisign::{
|
minisign::{
|
||||||
minisign_key_to_did,
|
minisign_key_to_did,
|
||||||
parse_minisign_signature,
|
parse_minisign_signature,
|
||||||
verify_minisign_identity_proof,
|
verify_minisign_signature,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use crate::json_signatures::{
|
use crate::json_signatures::{
|
||||||
|
@ -406,10 +406,12 @@ async fn create_identity_proof(
|
||||||
// Verify proof
|
// Verify proof
|
||||||
let proof_type = match did {
|
let proof_type = match did {
|
||||||
Did::Key(ref did_key) => {
|
Did::Key(ref did_key) => {
|
||||||
verify_minisign_identity_proof(
|
let signature_bin = parse_minisign_signature(&proof_data.signature)
|
||||||
|
.map_err(|_| ValidationError("invalid signature encoding"))?;
|
||||||
|
verify_minisign_signature(
|
||||||
did_key,
|
did_key,
|
||||||
&message,
|
&message,
|
||||||
&proof_data.signature,
|
&signature_bin,
|
||||||
).map_err(|_| ValidationError("invalid signature"))?;
|
).map_err(|_| ValidationError("invalid signature"))?;
|
||||||
IdentityProofType::LegacyMinisignIdentityProof
|
IdentityProofType::LegacyMinisignIdentityProof
|
||||||
},
|
},
|
||||||
|
@ -427,7 +429,7 @@ async fn create_identity_proof(
|
||||||
return Err(ValidationError("DID doesn't match current identity").into());
|
return Err(ValidationError("DID doesn't match current identity").into());
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
verify_eip191_identity_proof(
|
verify_eip191_signature(
|
||||||
did_pkh,
|
did_pkh,
|
||||||
&message,
|
&message,
|
||||||
&proof_data.signature,
|
&proof_data.signature,
|
||||||
|
|
Loading…
Reference in a new issue