@@ -3,10 +3,14 @@ package io.scalajs.nodejs.crypto
3
3
import com .thoughtworks .enableIf
4
4
import io .scalajs .nodejs .buffer .Buffer
5
5
import io .scalajs .nodejs .stream .{TransformOptions , WritableOptions }
6
+ import io .scalajs .nodejs .v8 .SharedArrayBuffer
7
+ import io .scalajs .nodejs .Error
6
8
import net .exoego .scalajs .types .util .Factory
7
9
10
+ import scala .scalajs
8
11
import scala .scalajs .js
9
12
import scala .scalajs .js .annotation .JSImport
13
+ import scala .scalajs .js .typedarray .{ArrayBuffer , DataView , TypedArray }
10
14
import scala .scalajs .js .|
11
15
12
16
/** The crypto module provides cryptographic functionality that includes a set of wrappers
@@ -173,6 +177,23 @@ trait Crypto extends js.Object {
173
177
@ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs14)
174
178
def diffieHellman (options : DiffieHellmanOptions ): Buffer = js.native
175
179
180
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
181
+ def generateKey (`type` : String , options : GenerateKeyOptions , callback : Callback1 [KeyObject ]): Unit = js.native
182
+
183
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
184
+ def generateKeySync (`type` : String , options : GenerateKeyOptions ): Unit = js.native
185
+
186
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
187
+ def generatePrime (size : String , options : GeneratePrimeOptions , callback : Callback1 [ArrayBuffer | js.BigInt ]): Unit =
188
+ js.native
189
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
190
+ def generatePrimeSync (size : String , options : GeneratePrimeOptions ): ArrayBuffer | js.BigInt = js.native
191
+
192
+ def getCipherInfo (name : String ): js.UndefOr [CipherInfo ] = js.native
193
+ def getCipherInfo (name : String , options : GetCipherInfoOptions ): js.UndefOr [CipherInfo ] = js.native
194
+ def getCipherInfo (nid : Double ): js.UndefOr [CipherInfo ] = js.native
195
+ def getCipherInfo (nid : Double , options : GetCipherInfoOptions ): js.UndefOr [CipherInfo ] = js.native
196
+
176
197
def generateKeyPair (
177
198
`type` : String ,
178
199
options : GenerateKeyPairOptions ,
@@ -319,6 +340,11 @@ trait Crypto extends js.Object {
319
340
@ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs12)
320
341
def randomInt (min : Int , max : Int , callback : Callback1 [Int ]): Unit = js.native
321
342
343
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
344
+ def randomUUID (options : RandomUUIDOptions ): String = js.native
345
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
346
+ def randomUUID (): String = js.native
347
+
322
348
def scrypt (password : String , salt : String , keylen : Int , options : ScryptOptions , callback : Callback1 [Buffer ]): Unit =
323
349
js.native
324
350
def scrypt (password : String ,
@@ -401,6 +427,44 @@ trait Crypto extends js.Object {
401
427
@ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs12) def verify (data : BufferLike ,
402
428
key : KeyObject
403
429
): Boolean = js.native
430
+
431
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
432
+ def checkPrime (candidate : ArrayBuffer | SharedArrayBuffer | TypedArray [_, _] | Buffer | DataView | js.BigInt ,
433
+ options : CheckPrimeOptions ,
434
+ callback : Callback1 [Boolean ]
435
+ ): Unit = js.native
436
+
437
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
438
+ def checkPrimeSync (candidate : ArrayBuffer | SharedArrayBuffer | TypedArray [_, _] | Buffer | DataView | js.BigInt ,
439
+ options : CheckPrimeOptions
440
+ ): Boolean = js.native
441
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
442
+ def checkPrimeSync (
443
+ candidate : ArrayBuffer | SharedArrayBuffer | TypedArray [_, _] | Buffer | DataView | js.BigInt
444
+ ): Boolean = js.native
445
+
446
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
447
+ def hkdf (digest : String ,
448
+ key : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView | KeyObject ,
449
+ salt : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView ,
450
+ info : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView ,
451
+ keylen : Int ,
452
+ callback : Callback1 [Buffer ]
453
+ ): Unit = js.native
454
+
455
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
456
+ def hkdfSync (digest : String ,
457
+ key : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView | KeyObject ,
458
+ salt : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView ,
459
+ info : String | ArrayBuffer | Buffer | TypedArray [_, _] | DataView ,
460
+ keylen : Int
461
+ ): Buffer = js.native
462
+
463
+ @ enableIf(io.scalajs.nodejs.internal.CompilerSwitches .gteNodeJs16)
464
+ def secureHeapUsed (): HeapUsed = js.native
465
+
466
+ // TODO: Add when reached stable
467
+ // webcrypto
404
468
}
405
469
406
470
/** Crypto Singleton
@@ -509,6 +573,19 @@ trait CreatePublicKeyOptions extends js.Object {
509
573
var `type` : js.UndefOr [String ] = js.undefined
510
574
}
511
575
576
+ @ Factory
577
+ trait GenerateKeyOptions extends js.Object {
578
+ val length : Int
579
+ }
580
+
581
+ @ Factory
582
+ trait GeneratePrimeOptions extends js.Object {
583
+ var add : js.UndefOr [ArrayBuffer | SharedArrayBuffer | TypedArray [_, _] | Buffer | DataView | js.BigInt ] = js.undefined
584
+ var rem : js.UndefOr [ArrayBuffer | SharedArrayBuffer | TypedArray [_, _] | Buffer | DataView | js.BigInt ] = js.undefined
585
+ var safe : js.UndefOr [Boolean ] = js.undefined
586
+ var bigint : js.UndefOr [Boolean ] = js.undefined
587
+ }
588
+
512
589
@ Factory
513
590
trait GenerateKeyPairOptions extends js.Object {
514
591
val modulusLength : Int
@@ -535,3 +612,35 @@ trait KeyPair extends js.Object {
535
612
val publicKey : String | Buffer | KeyObject
536
613
val privateKey : String | Buffer | KeyObject
537
614
}
615
+
616
+ @ Factory
617
+ trait CheckPrimeOptions extends js.Object {
618
+ var checks : js.UndefOr [Int ] = js.undefined
619
+ }
620
+
621
+ trait CipherInfo extends js.Object {
622
+ var name : String
623
+ var nid : Double
624
+ var blockSize : Double
625
+ var ivLength : Int
626
+ var keyLength : Int
627
+ var mode : String
628
+ }
629
+
630
+ @ Factory
631
+ trait GetCipherInfoOptions extends js.Object {
632
+ var keyLength : js.UndefOr [Int ] = js.undefined
633
+ var ivLength : js.UndefOr [Int ] = js.undefined
634
+ }
635
+
636
+ @ Factory
637
+ trait RandomUUIDOptions extends js.Object {
638
+ var disableEntropyCache : js.UndefOr [Boolean ] = js.undefined
639
+ }
640
+
641
+ trait HeapUsed extends js.Object {
642
+ var total : Double
643
+ var min : Double
644
+ var used : Double
645
+ var utilization : Double
646
+ }
0 commit comments