From 1db84f28f560708c19e12d48616064bcfa0a1ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Mon, 5 Aug 2019 18:52:34 +0200 Subject: [PATCH] node-forge: Fix type of `pki.rsa.setPublicKey()` (#37081) - Replace the `any`s by proper types. - Return an `pki.rsa.PublicKey` instead of `pki.PublicKey` to be more specific (the latter also allows ed25519). - Make `pki.setRsaPublicKey` an alias of `rsa.setPublicKey`. --- types/node-forge/index.d.ts | 4 ++-- types/node-forge/node-forge-tests.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/types/node-forge/index.d.ts b/types/node-forge/index.d.ts index d390af1ed2..291598914d 100644 --- a/types/node-forge/index.d.ts +++ b/types/node-forge/index.d.ts @@ -114,7 +114,7 @@ declare module "node-forge" { algorithm?: string; } - function setPublicKey(n: any, e: any): any; + function setPublicKey(n: jsbn.BigInteger, e: jsbn.BigInteger): PublicKey; function generateKeyPair(bits?: number, e?: number, callback?: (err: Error, keypair: KeyPair) => void): KeyPair; function generateKeyPair(options?: GenerateKeyPairOptions, callback?: (err: Error, keypair: KeyPair) => void): KeyPair; @@ -314,7 +314,7 @@ declare module "node-forge" { function publicKeyToRSAPublicKey(publicKey: PublicKey): any; - function setRsaPublicKey(n: jsbn.BigInteger, e: jsbn.BigInteger): PublicKey; + type setRsaPublicKey = typeof rsa.setPublicKey; function wrapRsaPrivateKey(privateKey: asn1.Asn1): asn1.Asn1; } diff --git a/types/node-forge/node-forge-tests.ts b/types/node-forge/node-forge-tests.ts index 06af5f3a7b..064bd0f607 100644 --- a/types/node-forge/node-forge-tests.ts +++ b/types/node-forge/node-forge-tests.ts @@ -1,6 +1,7 @@ import * as forge from 'node-forge'; let keypair = forge.pki.rsa.generateKeyPair({ bits: 512 }); +forge.pki.rsa.setPublicKey(keypair.privateKey.n, keypair.privateKey.e); let privateKeyPem = forge.pki.privateKeyToPem(keypair.privateKey); let publicKeyPem = forge.pki.publicKeyToPem(keypair.publicKey); let key = forge.pki.decryptRsaPrivateKey(privateKeyPem);