Changeset View
Changeset View
Standalone View
Standalone View
services/identity/src/service.rs
Show First 20 Lines • Show All 345 Lines • ▼ Show 20 Lines | ) -> Result<(), Status> { | ||||
} | } | ||||
let siwe_message: Message = match siwe_message.parse() { | let siwe_message: Message = match siwe_message.parse() { | ||||
Ok(m) => m, | Ok(m) => m, | ||||
Err(e) => { | Err(e) => { | ||||
error!("Failed to parse SIWE message: {}", e); | error!("Failed to parse SIWE message: {}", e); | ||||
return Err(Status::invalid_argument("invalid message")); | return Err(Status::invalid_argument("invalid message")); | ||||
} | } | ||||
}; | }; | ||||
let decoded_signature = hex::decode(siwe_signature.trim_start_matches("0x")) | |||||
.map_err(|e| { | |||||
error!("Failed to decode SIWE signature: {}", e); | |||||
Status::invalid_argument("invalid signature") | |||||
})?; | |||||
match siwe_message.verify( | match siwe_message.verify( | ||||
match siwe_signature.as_bytes().try_into() { | match decoded_signature.try_into() { | ||||
Ok(s) => s, | Ok(s) => s, | ||||
Err(e) => { | Err(e) => { | ||||
error!("Conversion to SIWE signature failed: {:?}", e); | error!("Conversion to SIWE signature failed: {:?}", e); | ||||
return Err(Status::invalid_argument("invalid message")); | return Err(Status::invalid_argument("invalid message")); | ||||
} | } | ||||
}, | }, | ||||
None, | None, | ||||
None, | None, | ||||
▲ Show 20 Lines • Show All 266 Lines • Show Last 20 Lines |