forked from TrueCloudLab/neoneo-go
compiler: add public key recovering syscalls
Added Secp256r1Recover and Secp256k1Recover syscalls.
This commit is contained in:
parent
0b87a68210
commit
4f1cf07075
2 changed files with 25 additions and 1 deletions
|
@ -11,6 +11,10 @@ var syscalls = map[string]map[string]string{
|
||||||
"GetUsage": "Neo.Attribute.GetUsage",
|
"GetUsage": "Neo.Attribute.GetUsage",
|
||||||
"GetData": "Neo.Attribute.GetData",
|
"GetData": "Neo.Attribute.GetData",
|
||||||
},
|
},
|
||||||
|
"crypto": {
|
||||||
|
"Secp256k1Recover": "Neo.Cryptography.Secp256k1Recover",
|
||||||
|
"Secp256r1Recover": "Neo.Cryptography.Secp256r1Recover",
|
||||||
|
},
|
||||||
"enumerator": {
|
"enumerator": {
|
||||||
"Concat": "Neo.Enumerator.Concat",
|
"Concat": "Neo.Enumerator.Concat",
|
||||||
"Create": "Neo.Enumerator.Create",
|
"Create": "Neo.Enumerator.Create",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Package crypto provides an interface to VM cryptographic instructions.
|
Package crypto provides an interface to VM cryptographic instructions and syscalls.
|
||||||
*/
|
*/
|
||||||
package crypto
|
package crypto
|
||||||
|
|
||||||
|
@ -30,3 +30,23 @@ func Hash256(b []byte) []byte {
|
||||||
func VerifySignature(msg []byte, sig []byte, pub []byte) bool {
|
func VerifySignature(msg []byte, sig []byte, pub []byte) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Secp256k1Recover recovers public key from the given signature (r, s) on the
|
||||||
|
// given message hash using Secp256k1 elliptic curve. Flag isEven denotes Y's
|
||||||
|
// least significant bit in decompression algorithm. The return value is byte
|
||||||
|
// array representation of the public key which is either empty (if it's not
|
||||||
|
// possible to recover key) or contains 32 bytes in BE for X point (in case of
|
||||||
|
// success). This function uses Neo.Cryptography.Secp256k1Recover syscall.
|
||||||
|
func Secp256k1Recover(r []byte, s []byte, messageHash []byte, isEven bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Secp256r1Recover recovers public key from the given signature (r, s) on the
|
||||||
|
// given message hash using Secp256r1 elliptic curve. Flag isEven denotes Y's
|
||||||
|
// least significant bit in decompression algorithm. The return value is byte
|
||||||
|
// array representation of the public key which is either empty (if it's not
|
||||||
|
// possible to recover key) or contains 32 bytes in BE for X point (in case of
|
||||||
|
// success). This function uses Neo.Cryptography.Secp256r1Recover syscall.
|
||||||
|
func Secp256r1Recover(r []byte, s []byte, messageHash []byte, isEven bool) []byte {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue