@@ -223,11 +223,19 @@ Napi::Number bind_wc_PKCS7_EncodeSignedData(const Napi::CallbackInfo& info)
223223
224224 wc_InitRng ( &rng );
225225
226+ ret = wc_PKCS7_SetSignerIdentifierType ( pkcs7, CMS_SKID );
227+
228+ if ( ret != 0 )
229+ {
230+ return Napi::Number::New ( env, ret );
231+ }
232+
226233 pkcs7->content = data;
227234 pkcs7->contentSz = data_size;
228235 pkcs7->privateKey = key;
229236 pkcs7->privateKeySz = key_size;
230237 pkcs7->encryptOID = key_sum;
238+ pkcs7->publicKeyOID = key_sum;
231239 pkcs7->hashOID = hash_sum;
232240 pkcs7->rng = &rng;
233241
@@ -251,6 +259,80 @@ Napi::Number bind_wc_PKCS7_VerifySignedData(const Napi::CallbackInfo& info)
251259 return Napi::Number::New ( env, ret );
252260}
253261
262+ Napi::Number sizeof_wc_PKCS7_GetAttributeValue (const Napi::CallbackInfo& info)
263+ {
264+ int ret;
265+ Napi::Env env = info.Env ();
266+ PKCS7* pkcs7 = (PKCS7*)( info[0 ].As <Napi::Uint8Array>().Data () );
267+ uint8_t * oid = info[1 ].As <Napi::Uint8Array>().Data ();
268+ unsigned int oid_size = info[2 ].As <Napi::Number>().Int32Value ();
269+ unsigned int out_size;
270+
271+ ret = wc_PKCS7_GetAttributeValue ( pkcs7, oid, oid_size, NULL , &out_size );
272+
273+ if ( ret != LENGTH_ONLY_E )
274+ {
275+ return Napi::Number::New ( env, ret );
276+ }
277+
278+ return Napi::Number::New ( env, out_size );
279+ }
280+
281+ Napi::Number bind_wc_PKCS7_GetAttributeValue (const Napi::CallbackInfo& info)
282+ {
283+ int ret;
284+ Napi::Env env = info.Env ();
285+ PKCS7* pkcs7 = (PKCS7*)( info[0 ].As <Napi::Uint8Array>().Data () );
286+ uint8_t * oid = info[1 ].As <Napi::Uint8Array>().Data ();
287+ unsigned int oid_size = info[2 ].As <Napi::Number>().Int32Value ();
288+ uint8_t * out = info[3 ].As <Napi::Uint8Array>().Data ();
289+ unsigned int out_size = info[4 ].As <Napi::Number>().Int32Value ();
290+
291+ ret = wc_PKCS7_GetAttributeValue ( pkcs7, oid, oid_size, out, &out_size );
292+
293+ if ( ret < 0 )
294+ {
295+ return Napi::Number::New ( env, ret );
296+ }
297+
298+ return Napi::Number::New ( env, out_size );
299+ }
300+
301+ Napi::Number sizeof_wc_PKCS7_GetSignerSID (const Napi::CallbackInfo& info)
302+ {
303+ int ret;
304+ Napi::Env env = info.Env ();
305+ PKCS7* pkcs7 = (PKCS7*)( info[0 ].As <Napi::Uint8Array>().Data () );
306+ unsigned int out_size;
307+
308+ ret = wc_PKCS7_GetSignerSID ( pkcs7, NULL , &out_size );
309+
310+ if ( ret != LENGTH_ONLY_E )
311+ {
312+ return Napi::Number::New ( env, ret );
313+ }
314+
315+ return Napi::Number::New ( env, out_size );
316+ }
317+
318+ Napi::Number bind_wc_PKCS7_GetSignerSID (const Napi::CallbackInfo& info)
319+ {
320+ int ret;
321+ Napi::Env env = info.Env ();
322+ PKCS7* pkcs7 = (PKCS7*)( info[0 ].As <Napi::Uint8Array>().Data () );
323+ uint8_t * out = info[1 ].As <Napi::Uint8Array>().Data ();
324+ unsigned int out_size = info[2 ].As <Napi::Number>().Int32Value ();
325+
326+ ret = wc_PKCS7_GetSignerSID ( pkcs7, out, &out_size );
327+
328+ if ( ret < 0 )
329+ {
330+ return Napi::Number::New ( env, ret );
331+ }
332+
333+ return Napi::Number::New ( env, out_size );
334+ }
335+
254336void bind_wc_PKCS7_Free (const Napi::CallbackInfo& info)
255337{
256338 PKCS7* pkcs7 = (PKCS7*)( info[0 ].As <Napi::Uint8Array>().Data () );
0 commit comments