@@ -165,8 +165,10 @@ const BLST_SCALAR_BYTES = 256 / 8
165
165
const BLST_FP_BYTES = 384 / 8
166
166
const BLST_P1_COMPRESS_BYTES = BLST_FP_BYTES
167
167
const BLST_P1_SERIALIZE_BYTES = BLST_FP_BYTES * 2
168
+ const BLST_P1_SERIALIZE_EIP2537_BYTES = 64 * 2
168
169
const BLST_P2_COMPRESS_BYTES = BLST_FP_BYTES * 2
169
170
const BLST_P2_SERIALIZE_BYTES = BLST_FP_BYTES * 4
171
+ const BLST_P2_SERIALIZE_EIP2537_BYTES = 128 * 2
170
172
171
173
type Scalar = C.blst_scalar
172
174
type Fp = C.blst_fp
@@ -1705,11 +1707,22 @@ func (p1 *P1Affine) Serialize() []byte {
1705
1707
return out [:]
1706
1708
}
1707
1709
1710
+ func (p1 * P1Affine ) SerializeEip2537 () []byte {
1711
+ var out [BLST_P1_SERIALIZE_EIP2537_BYTES ]byte
1712
+ C .blst_p1_affine_serialize_eip2537 ((* C .byte )(& out [0 ]), p1 )
1713
+ return out [:]
1714
+ }
1715
+
1708
1716
func (p1 * P1Affine ) Deserialize (in []byte ) * P1Affine {
1709
- if len (in ) != BLST_P1_SERIALIZE_BYTES {
1710
- return nil
1711
- }
1712
- if C .blst_p1_deserialize (p1 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
1717
+ if len (in ) == BLST_P1_SERIALIZE_BYTES {
1718
+ if C .blst_p1_deserialize (p1 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
1719
+ return nil
1720
+ }
1721
+ } else if len (in ) == BLST_P1_SERIALIZE_EIP2537_BYTES {
1722
+ if C .blst_p1_deserialize_eip2537 (p1 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
1723
+ return nil
1724
+ }
1725
+ } else {
1713
1726
return nil
1714
1727
}
1715
1728
return p1
@@ -1797,6 +1810,11 @@ func (p1 *P1) Serialize() []byte {
1797
1810
C .blst_p1_serialize ((* C .byte )(& out [0 ]), p1 )
1798
1811
return out [:]
1799
1812
}
1813
+ func (p1 * P1 ) SerializeEip2537 () []byte {
1814
+ var out [BLST_P1_SERIALIZE_EIP2537_BYTES ]byte
1815
+ C .blst_p1_serialize_eip2537 ((* C .byte )(& out [0 ]), p1 )
1816
+ return out [:]
1817
+ }
1800
1818
func (p1 * P1 ) Compress () []byte {
1801
1819
var out [BLST_P1_COMPRESS_BYTES ]byte
1802
1820
C .blst_p1_compress ((* C .byte )(& out [0 ]), p1 )
@@ -2367,11 +2385,22 @@ func (p2 *P2Affine) Serialize() []byte {
2367
2385
return out [:]
2368
2386
}
2369
2387
2388
+ func (p2 * P2Affine ) SerializeEip2537 () []byte {
2389
+ var out [BLST_P2_SERIALIZE_EIP2537_BYTES ]byte
2390
+ C .blst_p2_affine_serialize_eip2537 ((* C .byte )(& out [0 ]), p2 )
2391
+ return out [:]
2392
+ }
2393
+
2370
2394
func (p2 * P2Affine ) Deserialize (in []byte ) * P2Affine {
2371
- if len (in ) != BLST_P2_SERIALIZE_BYTES {
2372
- return nil
2373
- }
2374
- if C .blst_p2_deserialize (p2 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
2395
+ if len (in ) == BLST_P2_SERIALIZE_BYTES {
2396
+ if C .blst_p2_deserialize (p2 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
2397
+ return nil
2398
+ }
2399
+ } else if len (in ) == BLST_P2_SERIALIZE_EIP2537_BYTES {
2400
+ if C .blst_p2_deserialize_eip2537 (p2 , (* C .byte )(& in [0 ])) != C .BLST_SUCCESS {
2401
+ return nil
2402
+ }
2403
+ } else {
2375
2404
return nil
2376
2405
}
2377
2406
return p2
@@ -2459,6 +2488,11 @@ func (p2 *P2) Serialize() []byte {
2459
2488
C .blst_p2_serialize ((* C .byte )(& out [0 ]), p2 )
2460
2489
return out [:]
2461
2490
}
2491
+ func (p2 * P2 ) SerializeEip2537 () []byte {
2492
+ var out [BLST_P2_SERIALIZE_EIP2537_BYTES ]byte
2493
+ C .blst_p2_serialize_eip2537 ((* C .byte )(& out [0 ]), p2 )
2494
+ return out [:]
2495
+ }
2462
2496
func (p2 * P2 ) Compress () []byte {
2463
2497
var out [BLST_P2_COMPRESS_BYTES ]byte
2464
2498
C .blst_p2_compress ((* C .byte )(& out [0 ]), p2 )
0 commit comments