@@ -321,9 +321,12 @@ export class NodeJSAriesAskar implements AriesAskar {
321321
322322 const errorCode = this . nativeAriesAskar . askar_entry_list_get_value ( entryListHandle , index , ret )
323323 this . handleError ( errorCode )
324-
325324 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
326- return new Uint8Array ( secretBufferToBuffer ( byteBuffer ) )
325+ const view = secretBufferToBuffer ( byteBuffer )
326+ const result = Buffer . from ( view )
327+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
328+
329+ return new Uint8Array ( result )
327330 }
328331
329332 public keyAeadDecrypt ( options : KeyAeadDecryptOptions ) : Uint8Array {
@@ -332,9 +335,12 @@ export class NodeJSAriesAskar implements AriesAskar {
332335
333336 const errorCode = this . nativeAriesAskar . askar_key_aead_decrypt ( localKeyHandle , ciphertext , nonce , tag , aad , ret )
334337 this . handleError ( errorCode )
335-
336338 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
337- return new Uint8Array ( secretBufferToBuffer ( byteBuffer ) )
339+ const view = secretBufferToBuffer ( byteBuffer )
340+ const result = Buffer . from ( view )
341+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
342+
343+ return new Uint8Array ( result )
338344 }
339345
340346 public keyAeadEncrypt ( options : KeyAeadEncryptOptions ) : EncryptedBuffer {
@@ -343,9 +349,11 @@ export class NodeJSAriesAskar implements AriesAskar {
343349
344350 const errorCode = this . nativeAriesAskar . askar_key_aead_encrypt ( localKeyHandle , message , nonce , aad , ret )
345351 this . handleError ( errorCode )
346-
347352 const encryptedBuffer = handleReturnPointer < EncryptedBufferType > ( ret )
348- return encryptedBufferStructToClass ( encryptedBuffer )
353+ const view = encryptedBufferStructToClass ( encryptedBuffer )
354+ this . nativeAriesAskar . askar_buffer_free ( encryptedBuffer . secretBuffer )
355+
356+ return view
349357 }
350358
351359 public keyAeadGetPadding ( options : KeyAeadGetPaddingOptions ) : number {
@@ -374,9 +382,12 @@ export class NodeJSAriesAskar implements AriesAskar {
374382
375383 const errorCode = this . nativeAriesAskar . askar_key_aead_random_nonce ( localKeyHandle , ret )
376384 this . handleError ( errorCode )
385+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
386+ const view = secretBufferToBuffer ( byteBuffer )
387+ const result = Buffer . from ( view )
388+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
377389
378- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
379- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
390+ return new Uint8Array ( result )
380391 }
381392
382393 public keyConvert ( options : KeyConvertOptions ) : LocalKeyHandle {
@@ -396,9 +407,12 @@ export class NodeJSAriesAskar implements AriesAskar {
396407
397408 const errorCode = this . nativeAriesAskar . askar_key_crypto_box ( recipientKey , senderKey , message , nonce , ret )
398409 this . handleError ( errorCode )
410+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
411+ const view = secretBufferToBuffer ( byteBuffer )
412+ const result = Buffer . from ( view )
413+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
399414
400- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
401- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
415+ return new Uint8Array ( result )
402416 }
403417
404418 public keyCryptoBoxOpen ( options : KeyCryptoBoxOpenOptions ) : Uint8Array {
@@ -407,19 +421,25 @@ export class NodeJSAriesAskar implements AriesAskar {
407421
408422 const errorCode = this . nativeAriesAskar . askar_key_crypto_box_open ( recipientKey , senderKey , message , nonce , ret )
409423 this . handleError ( errorCode )
424+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
425+ const view = secretBufferToBuffer ( byteBuffer )
426+ const result = Buffer . from ( view )
427+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
410428
411- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
412- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
429+ return new Uint8Array ( result )
413430 }
414431
415432 public keyCryptoBoxRandomNonce ( ) : Uint8Array {
416433 const ret = allocateSecretBuffer ( )
417434
418435 const errorCode = this . nativeAriesAskar . askar_key_crypto_box_random_nonce ( ret )
419436 this . handleError ( errorCode )
437+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
438+ const view = secretBufferToBuffer ( byteBuffer )
439+ const result = Buffer . from ( view )
440+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
420441
421- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
422- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
442+ return new Uint8Array ( result )
423443 }
424444
425445 public keyCryptoBoxSeal ( options : KeyCryptoBoxSealOptions ) : Uint8Array {
@@ -428,9 +448,12 @@ export class NodeJSAriesAskar implements AriesAskar {
428448
429449 const errorCode = this . nativeAriesAskar . askar_key_crypto_box_seal ( localKeyHandle , message , ret )
430450 this . handleError ( errorCode )
451+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
452+ const view = secretBufferToBuffer ( byteBuffer )
453+ const result = Buffer . from ( view )
454+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
431455
432- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
433- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
456+ return new Uint8Array ( result )
434457 }
435458
436459 public keyCryptoBoxSealOpen ( options : KeyCryptoBoxSealOpenOptions ) : Uint8Array {
@@ -439,9 +462,12 @@ export class NodeJSAriesAskar implements AriesAskar {
439462
440463 const errorCode = this . nativeAriesAskar . askar_key_crypto_box_seal_open ( localKeyHandle , ciphertext , ret )
441464 this . handleError ( errorCode )
465+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
466+ const view = secretBufferToBuffer ( byteBuffer )
467+ const result = Buffer . from ( view )
468+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
442469
443- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
444- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
470+ return new Uint8Array ( result )
445471 }
446472
447473 public keyDeriveEcdh1pu ( options : KeyDeriveEcdh1puOptions ) : LocalKeyHandle {
@@ -663,9 +689,12 @@ export class NodeJSAriesAskar implements AriesAskar {
663689
664690 const errorCode = this . nativeAriesAskar . askar_key_get_jwk_secret ( localKeyHandle , ret )
665691 this . handleError ( errorCode )
692+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
693+ const view = secretBufferToBuffer ( byteBuffer )
694+ const result = Buffer . from ( view )
695+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
666696
667- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
668- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
697+ return new Uint8Array ( result )
669698 }
670699
671700 public keyGetJwkThumbprint ( options : KeyGetJwkThumbprintOptions ) : string {
@@ -684,9 +713,12 @@ export class NodeJSAriesAskar implements AriesAskar {
684713
685714 const errorCode = this . nativeAriesAskar . askar_key_get_public_bytes ( localKeyHandle , ret )
686715 this . handleError ( errorCode )
716+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
717+ const view = secretBufferToBuffer ( byteBuffer )
718+ const result = Buffer . from ( view )
719+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
687720
688- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
689- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
721+ return new Uint8Array ( result )
690722 }
691723
692724 public keyGetSecretBytes ( options : KeyGetSecretBytesOptions ) : Uint8Array {
@@ -695,9 +727,12 @@ export class NodeJSAriesAskar implements AriesAskar {
695727
696728 const errorCode = this . nativeAriesAskar . askar_key_get_secret_bytes ( localKeyHandle , ret )
697729 this . handleError ( errorCode )
730+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
731+ const view = secretBufferToBuffer ( byteBuffer )
732+ const result = Buffer . from ( view )
733+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
698734
699- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
700- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
735+ return new Uint8Array ( result )
701736 }
702737
703738 public keySignMessage ( options : KeySignMessageOptions ) : Uint8Array {
@@ -706,9 +741,12 @@ export class NodeJSAriesAskar implements AriesAskar {
706741
707742 const errorCode = this . nativeAriesAskar . askar_key_sign_message ( localKeyHandle , message , sigType , ret )
708743 this . handleError ( errorCode )
744+ const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
745+ const view = secretBufferToBuffer ( byteBuffer )
746+ const result = Buffer . from ( view )
747+ this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
709748
710- const secretBuffer = handleReturnPointer < SecretBufferType > ( ret )
711- return new Uint8Array ( secretBufferToBuffer ( secretBuffer ) )
749+ return new Uint8Array ( result )
712750 }
713751
714752 public keyUnwrapKey ( options : KeyUnwrapKeyOptions ) : LocalKeyHandle {
@@ -738,9 +776,11 @@ export class NodeJSAriesAskar implements AriesAskar {
738776
739777 const errorCode = this . nativeAriesAskar . askar_key_wrap_key ( localKeyHandle , other , nonce , ret )
740778 this . handleError ( errorCode )
741-
742779 const encryptedBuffer = handleReturnPointer < EncryptedBufferType > ( ret )
743- return encryptedBufferStructToClass ( encryptedBuffer )
780+ const view = encryptedBufferStructToClass ( encryptedBuffer )
781+ this . nativeAriesAskar . askar_buffer_free ( encryptedBuffer . secretBuffer )
782+
783+ return view
744784 }
745785
746786 public keyGetSupportedBackends ( ) : string [ ] {
0 commit comments