File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -234,6 +234,10 @@ Uint8List _encodeBigInt(BigInt number) {
234
234
if (number > BigInt .zero) {
235
235
rawSize = (number.bitLength + 7 ) >> 3 ;
236
236
needsPaddingByte = ((number >> (rawSize - 1 ) * 8 ) & negativeFlag) == negativeFlag ? 1 : 0 ;
237
+
238
+ if (rawSize < 32 ) {
239
+ needsPaddingByte = 1 ;
240
+ }
237
241
} else {
238
242
needsPaddingByte = 0 ;
239
243
rawSize = (number.bitLength + 8 ) >> 3 ;
Original file line number Diff line number Diff line change @@ -26,4 +26,28 @@ void main() {
26
26
ecc.sign (HEX .decode ("b11d3d5e4ae12b89d5e3872ccc7d1f96d29b0ab888b67dccf1be5164b811cdbe" ), HEX .decode ("55b18e96ce3964ef2c81ad69249eca6d42682c11fbe525df6671fcbf0c2be902" ));
27
27
});
28
28
});
29
+
30
+ group ('Failing ecc test' , () {
31
+ test ('Should fail with the third set of key-msg' , () {
32
+ var key, msg, sig;
33
+
34
+ key = 'f92ca9fe5f77afa489214a7ba2bd6b36d30dd4acdb55c70d1378b5c45c831820' ;
35
+ msg = '045a7448dffff67c08023d16279c57c0bd16af6467580c183cc4672e768b8a77' ;
36
+
37
+ sig = ecc.sign (HEX .decode (msg), HEX .decode (key));
38
+ print (HEX .encode (sig));
39
+
40
+ key = '8c39fb3d889b6be22850254dc7ce3247c559d9f968785d88251ee4457633e335' ;
41
+ msg = '6ad99bc30926fd79cf5a977044088fd298a59728c5b0c1040713d3a8e1c1e69b' ;
42
+
43
+ sig = ecc.sign (HEX .decode (msg), HEX .decode (key));
44
+ print (HEX .encode (sig));
45
+
46
+ key = '2de619ea940d31927e0a7bbd5ebf855ab66f488b94a65cf929a1eb70b54ec771' ;
47
+ msg = 'd82a6db2583353856dd4dadc38cdb6373b092ea1f026fa04f03aa3c4e972454f' ;
48
+
49
+ sig = ecc.sign (HEX .decode (msg), HEX .decode (key));
50
+ print (HEX .encode (sig));
51
+ });
52
+ });
29
53
}
You can’t perform that action at this time.
0 commit comments