File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -4,8 +4,9 @@ version = "0.1.0"
44authors = [" Elichai Turkel <elichai.turkel@gmail.com>" ]
55
66[dependencies ]
7- secp256k1 = { path = " ../" , default-features = false , features = [" rand" ] }
7+ secp256k1 = { path = " ../" , default-features = false , features = [" serde " , " rand" ] }
88libc = { version = " 0.2" , default-features = false }
9+ serde_cbor = { version = " 0.10" , default-features = false } # A random serializer that supports no-std.
910
1011
1112[profile .release ]
Original file line number Diff line number Diff line change 55#![ no_std]
66extern crate libc;
77extern crate secp256k1;
8+ extern crate serde_cbor;
89
910use core:: fmt:: { self , write, Write } ;
1011use core:: intrinsics;
@@ -14,6 +15,10 @@ use secp256k1::rand::{self, RngCore};
1415use secp256k1:: serde:: Serialize ;
1516use secp256k1:: * ;
1617
18+ use serde_cbor:: de;
19+ use serde_cbor:: ser:: SliceWrite ;
20+ use serde_cbor:: Serializer ;
21+
1722struct FakeRng ;
1823impl RngCore for FakeRng {
1924 fn next_u32 ( & mut self ) -> u32 {
@@ -48,6 +53,14 @@ fn start(_argc: isize, _argv: *const *const u8) -> isize {
4853 let sig = secp. sign ( & message, & secret_key) ;
4954 assert ! ( secp. verify( & message, & sig, & public_key) . is_ok( ) ) ;
5055
56+ let mut cbor_ser = [ 0u8 ; 100 ] ;
57+ let writer = SliceWrite :: new ( & mut cbor_ser[ ..] ) ;
58+ let mut ser = Serializer :: new ( writer) ;
59+ sig. serialize ( & mut ser) . unwrap ( ) ;
60+ let size = ser. into_inner ( ) . bytes_written ( ) ;
61+ let new_sig: Signature = de:: from_mut_slice ( & mut cbor_ser[ ..size] ) . unwrap ( ) ;
62+ assert_eq ! ( sig, new_sig) ;
63+
5164 unsafe { libc:: printf ( "Verified Successfully!\n \0 " . as_ptr ( ) as _ ) } ;
5265 0
5366}
You can’t perform that action at this time.
0 commit comments