@@ -89,13 +89,6 @@ import {
8989 StoreHandle ,
9090 handleInvalidNullResponse ,
9191} from '@openwallet-foundation/askar-shared'
92- import type {
93- ByteBufferType ,
94- EncryptedBufferType ,
95- NativeCallback ,
96- NativeCallbackWithResponse ,
97- SecretBufferType ,
98- } from './ffi'
9992import {
10093 FFI_ENTRY_LIST_HANDLE ,
10194 FFI_INT8 ,
@@ -121,8 +114,12 @@ import {
121114 toNativeCallback ,
122115 toNativeCallbackWithResponse ,
123116 toNativeLogCallback ,
117+ NativeCallback ,
118+ NativeCallbackWithResponse ,
119+ ByteBufferType ,
124120} from './ffi'
125121import { getNativeAskar } from './library'
122+ import { EncryptedBufferType } from './ffi/structures' ;
126123
127124function handleNullableReturnPointer < Return > ( returnValue : Buffer ) : Return | null {
128125 if ( returnValue . address ( ) === 0 ) return null
@@ -318,11 +315,10 @@ export class NodeJSAskar implements Askar {
318315 const errorCode = this . nativeAskar . askar_entry_list_get_value ( entryListHandle , index , ret )
319316 this . handleError ( errorCode )
320317 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
321- const view = secretBufferToBuffer ( byteBuffer )
322- const result = Buffer . from ( view )
323- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
318+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
319+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
324320
325- return new Uint8Array ( result )
321+ return bufferArray
326322 }
327323
328324 public keyAeadDecrypt ( options : KeyAeadDecryptOptions ) : Uint8Array {
@@ -332,11 +328,10 @@ export class NodeJSAskar implements Askar {
332328 const errorCode = this . nativeAskar . askar_key_aead_decrypt ( localKeyHandle , ciphertext , nonce , tag , aad , ret )
333329 this . handleError ( errorCode )
334330 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
335- const view = secretBufferToBuffer ( byteBuffer )
336- const result = Buffer . from ( view )
337- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
331+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
332+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
338333
339- return new Uint8Array ( result )
334+ return bufferArray
340335 }
341336
342337 public keyAeadEncrypt ( options : KeyAeadEncryptOptions ) : EncryptedBuffer {
@@ -346,10 +341,10 @@ export class NodeJSAskar implements Askar {
346341 const errorCode = this . nativeAskar . askar_key_aead_encrypt ( localKeyHandle , message , nonce , aad , ret )
347342 this . handleError ( errorCode )
348343 const encryptedBuffer = handleReturnPointer < EncryptedBufferType > ( ret )
349- const view = encryptedBufferStructToClass ( encryptedBuffer )
350- this . nativeAriesAskar . askar_buffer_free ( encryptedBuffer . secretBuffer )
344+ const encryptedBufferClass = encryptedBufferStructToClass ( encryptedBuffer )
345+ this . nativeAskar . askar_buffer_free ( encryptedBuffer . secretBuffer as unknown as Buffer )
351346
352- return view
347+ return encryptedBufferClass
353348 }
354349
355350 public keyAeadGetPadding ( options : KeyAeadGetPaddingOptions ) : number {
@@ -379,11 +374,10 @@ export class NodeJSAskar implements Askar {
379374 const errorCode = this . nativeAskar . askar_key_aead_random_nonce ( localKeyHandle , ret )
380375 this . handleError ( errorCode )
381376 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
382- const view = secretBufferToBuffer ( byteBuffer )
383- const result = Buffer . from ( view )
384- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
377+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
378+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
385379
386- return new Uint8Array ( result )
380+ return bufferArray
387381 }
388382
389383 public keyConvert ( options : KeyConvertOptions ) : LocalKeyHandle {
@@ -404,11 +398,10 @@ export class NodeJSAskar implements Askar {
404398 const errorCode = this . nativeAskar . askar_key_crypto_box ( recipientKey , senderKey , message , nonce , ret )
405399 this . handleError ( errorCode )
406400 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
407- const view = secretBufferToBuffer ( byteBuffer )
408- const result = Buffer . from ( view )
409- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
401+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
402+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
410403
411- return new Uint8Array ( result )
404+ return bufferArray
412405 }
413406
414407 public keyCryptoBoxOpen ( options : KeyCryptoBoxOpenOptions ) : Uint8Array {
@@ -418,11 +411,10 @@ export class NodeJSAskar implements Askar {
418411 const errorCode = this . nativeAskar . askar_key_crypto_box_open ( recipientKey , senderKey , message , nonce , ret )
419412 this . handleError ( errorCode )
420413 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
421- const view = secretBufferToBuffer ( byteBuffer )
422- const result = Buffer . from ( view )
423- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
414+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
415+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
424416
425- return new Uint8Array ( result )
417+ return bufferArray
426418 }
427419
428420 public keyCryptoBoxRandomNonce ( ) : Uint8Array {
@@ -431,11 +423,10 @@ export class NodeJSAskar implements Askar {
431423 const errorCode = this . nativeAskar . askar_key_crypto_box_random_nonce ( ret )
432424 this . handleError ( errorCode )
433425 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
434- const view = secretBufferToBuffer ( byteBuffer )
435- const result = Buffer . from ( view )
436- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
426+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
427+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
437428
438- return new Uint8Array ( result )
429+ return bufferArray
439430 }
440431
441432 public keyCryptoBoxSeal ( options : KeyCryptoBoxSealOptions ) : Uint8Array {
@@ -445,11 +436,10 @@ export class NodeJSAskar implements Askar {
445436 const errorCode = this . nativeAskar . askar_key_crypto_box_seal ( localKeyHandle , message , ret )
446437 this . handleError ( errorCode )
447438 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
448- const view = secretBufferToBuffer ( byteBuffer )
449- const result = Buffer . from ( view )
450- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
439+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
440+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
451441
452- return new Uint8Array ( result )
442+ return bufferArray
453443 }
454444
455445 public keyCryptoBoxSealOpen ( options : KeyCryptoBoxSealOpenOptions ) : Uint8Array {
@@ -459,11 +449,10 @@ export class NodeJSAskar implements Askar {
459449 const errorCode = this . nativeAskar . askar_key_crypto_box_seal_open ( localKeyHandle , ciphertext , ret )
460450 this . handleError ( errorCode )
461451 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
462- const view = secretBufferToBuffer ( byteBuffer )
463- const result = Buffer . from ( view )
464- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
452+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
453+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
465454
466- return new Uint8Array ( result )
455+ return bufferArray
467456 }
468457
469458 public keyDeriveEcdh1pu ( options : KeyDeriveEcdh1puOptions ) : LocalKeyHandle {
@@ -686,11 +675,10 @@ export class NodeJSAskar implements Askar {
686675 const errorCode = this . nativeAskar . askar_key_get_jwk_secret ( localKeyHandle , ret )
687676 this . handleError ( errorCode )
688677 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
689- const view = secretBufferToBuffer ( byteBuffer )
690- const result = Buffer . from ( view )
691- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
678+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
679+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
692680
693- return new Uint8Array ( result )
681+ return bufferArray
694682 }
695683
696684 public keyGetJwkThumbprint ( options : KeyGetJwkThumbprintOptions ) : string {
@@ -710,11 +698,10 @@ export class NodeJSAskar implements Askar {
710698 const errorCode = this . nativeAskar . askar_key_get_public_bytes ( localKeyHandle , ret )
711699 this . handleError ( errorCode )
712700 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
713- const view = secretBufferToBuffer ( byteBuffer )
714- const result = Buffer . from ( view )
715- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
701+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
702+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
716703
717- return new Uint8Array ( result )
704+ return bufferArray
718705 }
719706
720707 public keyGetSecretBytes ( options : KeyGetSecretBytesOptions ) : Uint8Array {
@@ -724,11 +711,10 @@ export class NodeJSAskar implements Askar {
724711 const errorCode = this . nativeAskar . askar_key_get_secret_bytes ( localKeyHandle , ret )
725712 this . handleError ( errorCode )
726713 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
727- const view = secretBufferToBuffer ( byteBuffer )
728- const result = Buffer . from ( view )
729- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
714+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
715+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
730716
731- return new Uint8Array ( result )
717+ return bufferArray
732718 }
733719
734720 public keySignMessage ( options : KeySignMessageOptions ) : Uint8Array {
@@ -738,11 +724,10 @@ export class NodeJSAskar implements Askar {
738724 const errorCode = this . nativeAskar . askar_key_sign_message ( localKeyHandle , message , sigType , ret )
739725 this . handleError ( errorCode )
740726 const byteBuffer = handleReturnPointer < ByteBufferType > ( ret )
741- const view = secretBufferToBuffer ( byteBuffer )
742- const result = Buffer . from ( view )
743- this . nativeAriesAskar . askar_buffer_free ( byteBuffer )
727+ const bufferArray = new Uint8Array ( Buffer . from ( secretBufferToBuffer ( byteBuffer ) ) )
728+ this . nativeAskar . askar_buffer_free ( byteBuffer as unknown as Buffer )
744729
745- return new Uint8Array ( result )
730+ return bufferArray
746731 }
747732
748733 public keyUnwrapKey ( options : KeyUnwrapKeyOptions ) : LocalKeyHandle {
@@ -773,10 +758,10 @@ export class NodeJSAskar implements Askar {
773758 const errorCode = this . nativeAskar . askar_key_wrap_key ( localKeyHandle , other , nonce , ret )
774759 this . handleError ( errorCode )
775760 const encryptedBuffer = handleReturnPointer < EncryptedBufferType > ( ret )
776- const view = encryptedBufferStructToClass ( encryptedBuffer )
777- this . nativeAriesAskar . askar_buffer_free ( encryptedBuffer . secretBuffer )
761+ const encryptedBufferClass = encryptedBufferStructToClass ( encryptedBuffer )
762+ this . nativeAskar . askar_buffer_free ( encryptedBuffer . secretBuffer as unknown as Buffer )
778763
779- return view
764+ return encryptedBufferClass
780765 }
781766
782767 public keyGetSupportedBackends ( ) : string [ ] {
0 commit comments