Merge pull request #837 from urbit/fix-secp-hints

adds secp jet hints
This commit is contained in:
Joe Bryan 2018-10-04 00:44:45 -04:00 committed by GitHub
commit 53503c7161
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4162,21 +4162,26 @@
== ==
:: ::
++ secp ++ secp
|= [w=@ p=@ a=@ b=@ g=pont n=@] ~/ %secp
|= [w=@ p=@ a=@ b=@ g=pont n=@] :: being passed in from above
=/ p ~(. fo p) =/ p ~(. fo p)
=/ n ~(. fo n) =/ n ~(. fo n)
~% %helper ..$ ~
|% |%
++ compress-point ++ compress-point
~/ %compress-point
|= pont |= pont
^- @ ^- @
(can 3 ~[w^x 1^(add 0x2 (cut 0 [0 1] y))]) (can 3 ~[w^x 1^(add 0x2 (cut 0 [0 1] y))])
:: ::
++ serialize-point ++ serialize-point
~/ %serialize-point
|= pont |= pont
^- @ ^- @
(can 3 ~[w^y w^x 1^0x4]) (can 3 ~[w^y w^x 1^0x4])
:: ::
++ decompress-point ++ decompress-point
~/ %decompress-point
|= dat=@ |= dat=@
^- pont ^- pont
=+ x=(end 3 w a) =+ x=(end 3 w a)
@ -4189,11 +4194,13 @@
!! !!
:: ::
++ priv-to-pub :: get pub from priv ++ priv-to-pub :: get pub from priv
~/ %priv-to-pub
|= prv=@ |= prv=@
^- pont ^- pont
(jc-mul g prv) (jc-mul g prv)
:: ::
++ make-k :: deterministic nonce ++ make-k :: deterministic nonce
~/ %make-k
=, mimes:html =, mimes:html
|= [has=@uvI prv=@] |= [has=@uvI prv=@]
^- @ ^- @
@ -4207,6 +4214,7 @@
(hmc w^k w^v) (hmc w^k w^v)
:: ::
++ ecdsa-raw-sign :: generate signature ++ ecdsa-raw-sign :: generate signature
~/ %ecdsa-raw-sign
|= [has=@uvI prv=@] |= [has=@uvI prv=@]
^- [v=@ r=@ s=@] ^- [v=@ r=@ s=@]
=/ z has =/ z has
@ -4220,6 +4228,7 @@
== ==
:: ::
++ ecdsa-raw-recover :: get pubkey from sig ++ ecdsa-raw-recover :: get pubkey from sig
~/ %ecdsa-raw-recover
|= [has=@uvI sig=[v=@ r=@ s=@]] |= [has=@uvI sig=[v=@ r=@ s=@]]
^- pont ^- pont
?> (lte v.sig 7) ?> (lte v.sig 7)