Module sui::ecdsa_k1
Constants
signature에서 public key를 복구할 수 없으면 발생하는 오류이다.
const EFailToRecoverPubKey: u64 = 0;
signature가 유효하지 않으면 발생하는 오류이다.
const EInvalidSignature: u64 = 1;
public key가 유효하지 않으면 발생하는 오류이다.
const EInvalidPubKey: u64 = 2;
ecrecover와 secp256k1_verify에서 유효한 hash 함수 이름이다.
const KECCAK256: u8 = 0;
const SHA256: u8 = 1;
Function secp256k1_ecrecover
@param signature: Secp256k1로 서명된 (r, s, v) 형태의 65바이트 signature이다. RFC6979를 사용한 signature 생성의 참조 구현은 다음과 같다: https://github.com/MystenLabs/narwhal/blob/5d6f6df8ccee94446ff88786c0dbbc98be7cfc09/crypto/src/secp256k1.rs 허용되는 v 값은 {0, 1, 2, 3}이다. @param msg: signature가 서명한 대상 메시지이며, hash되지 않은 원시 메시지이다. @param hash: 서명 시 메시지를 hash하는 데 사용한 hash 함수이다.
signature가 유효하면 대응하는 복구된 Secpk256k1 public key를 반환하고, 그렇지 않으면 오류를 발생시킨다. 이는 Ethereum의 ecrecover와 유사하며 Secp256k1 signature에만 적용할 수 있다.
EFailToRecoverPubKey 또는 EInvalidSignature로 중단될 수 있다.
public fun secp256k1_ecrecover(signature: &vector<u8>, msg: &vector<u8>, hash: u8): vector<u8>
Click to open
Implementation
public native fun secp256k1_ecrecover(
signature: &vector<u8>,
msg: &vector<u8>,
hash: u8,
): vector<u8>;