1
1
use neon:: prelude:: * ;
2
2
use neon:: types:: JsBuffer ;
3
- use rand;
4
3
use recrypt:: api:: Hashable ;
5
4
use recrypt:: api:: {
6
- Api , CryptoOps , Ed25519 , Ed25519Ops , KeyGenOps , PublicSigningKey , RandomBytes , SchnorrOps ,
7
- Sha256 , SigningKeypair ,
5
+ CryptoOps , DefaultRng , Ed25519 , Ed25519Ops , KeyGenOps , PublicSigningKey , RandomBytes , Recrypt ,
6
+ SchnorrOps , Sha256 , SigningKeypair ,
8
7
} ;
9
8
use util;
10
9
11
10
pub struct RecryptApi256 {
12
- api : Api < Sha256 , Ed25519 , RandomBytes < rand :: rngs :: ThreadRng > > ,
11
+ api : Recrypt < Sha256 , Ed25519 , RandomBytes < DefaultRng > > ,
13
12
}
14
13
15
14
declare_types ! {
16
15
pub class Api256 for RecryptApi256 {
17
16
init( _cx) {
18
- Ok ( RecryptApi256 { api: Api :: new( ) } )
17
+ Ok ( RecryptApi256 { api: Recrypt :: new( ) } )
19
18
}
20
19
21
20
method generateKeyPair( mut cx) {
22
21
let ( priv_key, pub_key) = {
23
22
let mut this = cx. this( ) ;
24
23
let guard = cx. lock( ) ;
25
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
24
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
26
25
recrypt_api_256. api. generate_key_pair( ) . unwrap( )
27
26
} ;
28
27
@@ -41,12 +40,12 @@ declare_types! {
41
40
let signing_key_pair = {
42
41
let mut this = cx. this( ) ;
43
42
let guard = cx. lock( ) ;
44
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
43
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
45
44
recrypt_api_256. api. generate_ed25519_key_pair( )
46
45
} ;
47
46
48
47
let signing_key_pair_obj: Handle <JsObject > = cx. empty_object( ) ;
49
- let priv_key_buffer = util:: bytes_to_buffer( & mut cx, & signing_key_pair. bytes( ) ) ?;
48
+ let priv_key_buffer = util:: bytes_to_buffer( & mut cx, signing_key_pair. bytes( ) ) ?;
50
49
let pub_key_buffer = util:: bytes_to_buffer( & mut cx, signing_key_pair. public_key( ) . bytes( ) ) ?;
51
50
52
51
signing_key_pair_obj. set( & mut cx, "privateKey" , priv_key_buffer) ?;
@@ -94,7 +93,7 @@ declare_types! {
94
93
let plaintext = {
95
94
let mut this = cx. this( ) ;
96
95
let guard = cx. lock( ) ;
97
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
96
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
98
97
recrypt_api_256. api. gen_plaintext( )
99
98
} ;
100
99
@@ -113,10 +112,10 @@ declare_types! {
113
112
let transform_key = {
114
113
let mut this = cx. this( ) ;
115
114
let guard = cx. lock( ) ;
116
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
115
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
117
116
recrypt_api_256. api. generate_transform_key(
118
117
& util:: buffer_to_private_key( & cx, from_private_key_buffer) ,
119
- to_public_key,
118
+ & to_public_key,
120
119
& signing_key_pair
121
120
) . unwrap( )
122
121
} ;
@@ -136,26 +135,13 @@ declare_types! {
136
135
Ok ( util:: public_key_to_js_object( & mut cx, & derived_public_key) ?. upcast( ) )
137
136
}
138
137
139
- method hash256( mut cx) {
140
- let hashable_buffer: Handle <JsBuffer > = cx. argument:: <JsBuffer >( 0 ) ?;
141
-
142
- let hashed_bytes = {
143
- let mut this = cx. this( ) ;
144
- let guard = cx. lock( ) ;
145
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
146
- recrypt_api_256. api. hash_256( & util:: buffer_to_variable_bytes( & cx, hashable_buffer) )
147
- } ;
148
-
149
- Ok ( util:: bytes_to_buffer( & mut cx, & hashed_bytes) ?. upcast( ) )
150
- }
151
-
152
138
method deriveSymmetricKey( mut cx) {
153
139
let plaintext_buffer: Handle <JsBuffer > = cx. argument:: <JsBuffer >( 0 ) ?;
154
140
155
141
let decrypted_symmetric_key = {
156
142
let mut this = cx. this( ) ;
157
143
let guard = cx. lock( ) ;
158
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
144
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
159
145
recrypt_api_256. api. derive_symmetric_key( & util:: buffer_to_plaintext( & cx, plaintext_buffer) )
160
146
} ;
161
147
@@ -173,10 +159,10 @@ declare_types! {
173
159
let encrypted_value = {
174
160
let mut this = cx. this( ) ;
175
161
let guard = cx. lock( ) ;
176
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
162
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
177
163
recrypt_api_256. api. encrypt(
178
164
& util:: buffer_to_plaintext( & cx, plaintext_buffer) ,
179
- public_key,
165
+ & public_key,
180
166
& signing_key_pair
181
167
) . unwrap( )
182
168
} ;
@@ -196,7 +182,7 @@ declare_types! {
196
182
let transformed_encrypted_value = {
197
183
let mut this = cx. this( ) ;
198
184
let guard = cx. lock( ) ;
199
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
185
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
200
186
recrypt_api_256. api. transform( encrypted_value, transform_key, & signing_key_pair) . unwrap( )
201
187
} ;
202
188
@@ -232,10 +218,10 @@ declare_types! {
232
218
let signature = {
233
219
let mut this = cx. this( ) ;
234
220
let guard = cx. lock( ) ;
235
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
221
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
236
222
recrypt_api_256. api. schnorr_sign(
237
223
& util:: buffer_to_private_key( & cx, private_key_buffer) ,
238
- public_key,
224
+ & public_key,
239
225
& util:: buffer_to_variable_bytes( & cx, message_buffer)
240
226
)
241
227
} ;
@@ -269,9 +255,9 @@ declare_types! {
269
255
let verified = {
270
256
let mut this = cx. this( ) ;
271
257
let guard = cx. lock( ) ;
272
- let mut recrypt_api_256 = this. borrow_mut( & guard) ;
258
+ let recrypt_api_256 = this. borrow_mut( & guard) ;
273
259
recrypt_api_256. api. schnorr_verify(
274
- public_key,
260
+ & public_key,
275
261
augmented_private_key. as_ref( ) ,
276
262
& util:: buffer_to_variable_bytes( & cx, message_buffer) ,
277
263
signature
0 commit comments