// 指定sm2的参数
// sm2
P               = FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF
A               = FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FC
B               = 28 E9 FA 9E 9D 9F 5E 34 4D 5A 9E 4B CF 65 09 A7 F3 97 89 F5 15 AB 8F 92 DD BC BD 41 4D 94 0E 93
GX              = 32 C4 AE 2C 1F 19 81 19 5F 99 04 46 6A 39 C9 94 8F E3 0B BF F2 66 0B E1 71 5A 45 89 33 4C 74 C7
GY              = BC 37 36 A2 F4 F6 77 9C 59 BD CE E3 6B 69 21 53 D0 A9 87 7C C6 2A 47 40 02 DF 32 E5 21 39 F0 A0
N               = FF FF FF FE FF FF FF FF FF FF FF FF FF FF FF FF 72 03 DF 6B 21 C6 05 2B 53 BB F4 09 39 D5 41 23

h               = 01
hex_len_in_byte = 20

r               = new_ecc_initialize( $p, $a, $b, $gx, $gy, $n, $h, $hex_len_in_byte )
if $r != 00
    
?
    
pause
endif


pri1            = 86F31E7A3A3291CD81DB5A6A028CEB0A66DAD60C5C45EB0CE16AA0B6BE7BB7DC
pub1            = 4F6B8DF5ED018EFEE3E3EA65E71CE7F2C8A49FB1DD7E0BD97A673B4BCC4A00A45D1884822638037477A7BFE359ED4173F344383984521D7F2802B43AEEC46E8C
stx             = EFF2E277542ABBF7CB371376B13B6FF9643ACE7E654464E72C6543312C901BC0A002201195DFAB4801BD5F69E66B5FAFF2231EA49ECCB1B41701A6EB5887225D

hash            = hrandom( $prilen )
r_s             = new_ecc_sign( $pri1, $hash )

kk              = new_ecc_verify( $pub1, $hash, $r_s )
if $kk != 00
    
?
    
pause
endif

rnd             = hrandom( $prilen )
r_s1            = new_ecc_sign( $pri1, $hash, $rnd )
r_s2            = new_ecc_sign( $pri1, $hash, $rnd )
if $r_s1 != $r_s2
    
?
    
? "两次签名应该一致"
    
pause
endif

kk              = new_ecc_verify( $pub1, $hash, $r_s1 )
if $kk != 00
    
?
    
pause
endif