From 7ced82bc82acb3ab646bff6b7d8783480fd8827f Mon Sep 17 00:00:00 2001 From: "ioan.coleman90" Date: Wed, 22 Mar 2017 15:47:01 +0000 Subject: [PATCH 1/2] Added publicKeyFromPem method to PKI interface fixes #15260 --- node-forge/index.d.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/node-forge/index.d.ts b/node-forge/index.d.ts index 586827253a..38a079bec3 100644 --- a/node-forge/index.d.ts +++ b/node-forge/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for node-forge 0.6.42 +// Type definitions for node-forge 0.6.43 // Project: https://github.com/digitalbazaar/forge // Definitions by: Seth Westphal // Kay Schecker @@ -23,7 +23,10 @@ declare module "node-forge" { } function privateKeyToPem(key: Key, maxline?: number): PEM; + function publicKeyToPem(key: Key, maxline?: number): PEM; + function publicKeyFromPem(pem: PEM): Key; + function certificateToPem(cert: Certificate, maxline?: number): PEM; interface oids { From 295172d48b9c6af69d23c0d7271d5b9201c64aa0 Mon Sep 17 00:00:00 2001 From: "ioan.coleman90" Date: Wed, 22 Mar 2017 16:31:33 +0000 Subject: [PATCH 2/2] Testing new method, fixing lint errors --- node-forge/index.d.ts | 6 ++---- node-forge/node-forge-tests.ts | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/node-forge/index.d.ts b/node-forge/index.d.ts index 38a079bec3..7897158f62 100644 --- a/node-forge/index.d.ts +++ b/node-forge/index.d.ts @@ -23,10 +23,8 @@ declare module "node-forge" { } function privateKeyToPem(key: Key, maxline?: number): PEM; - function publicKeyToPem(key: Key, maxline?: number): PEM; function publicKeyFromPem(pem: PEM): Key; - function certificateToPem(cert: Certificate, maxline?: number): PEM; interface oids { @@ -272,7 +270,7 @@ declare module "node-forge" { getBagsByLocalKeyId: (localKeyId: string, bagType: string) => Bag[] } - function pkcs12FromAsn1(obj:any, strict?: boolean, password?: string) : Pkcs12Pfx; - function pkcs12FromAsn1(obj:any, password?: string) : Pkcs12Pfx; + function pkcs12FromAsn1(obj: any, strict?: boolean, password?: string) : Pkcs12Pfx; + function pkcs12FromAsn1(obj: any, password?: string) : Pkcs12Pfx; } } diff --git a/node-forge/node-forge-tests.ts b/node-forge/node-forge-tests.ts index 8865f6998f..4815a5dfc5 100644 --- a/node-forge/node-forge-tests.ts +++ b/node-forge/node-forge-tests.ts @@ -5,6 +5,8 @@ let privateKeyPem = forge.pki.privateKeyToPem(keypair.privateKey); let publicKeyPem = forge.pki.publicKeyToPem(keypair.publicKey); let key = forge.pki.decryptRsaPrivateKey(privateKeyPem); let x: string = forge.ssh.privateKeyToOpenSSH(key); +let pemKey: forge.pki.PEM; +let publicKeyRsa = forge.pki.publicKeyFromPem(pemKey); { let subjectPublicKeyInfo = forge.asn1.create(forge.asn1.Class.UNIVERSAL, forge.asn1.Type.SEQUENCE, true, [ @@ -29,16 +31,16 @@ let x: string = forge.ssh.privateKeyToOpenSSH(key); let oidSrc = '1.2.840.113549.1.1.5'; let derOidBuffer = forge.asn1.oidToDer(oidSrc); let oidResult = forge.asn1.derToOid(derOidBuffer); - if(oidSrc !== oidResult) throw Error('forge.asn1.oidToDer / derToOid fail'); + if (oidSrc !== oidResult) throw Error('forge.asn1.oidToDer / derToOid fail'); } -if(forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillString fail'); +if (forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillString fail'); { let hex: string = '61'; let bytes: string = forge.util.hexToBytes(hex); let result: string = forge.util.bytesToHex(bytes); - if(bytes !== 'a' || result !== hex) throw Error('forge.util.hexToBytes / bytesToHex fail'); + if (bytes !== 'a' || result !== hex) throw Error('forge.util.hexToBytes / bytesToHex fail'); } { @@ -49,17 +51,17 @@ if(forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillString src = new Uint8Array(2); encode = forge.util.binary.hex.encode(src); decode = forge.util.binary.hex.decode(encode); - if(encode !== '0000' || src.byteLength !== decode.byteLength) throw Error('forge.util.binary.hex.encode / decode fail'); + if (encode !== '0000' || src.byteLength !== decode.byteLength) throw Error('forge.util.binary.hex.encode / decode fail'); src = new Uint8Array(2); encode = forge.util.binary.base64.encode(src); decode = forge.util.binary.base64.decode(encode); - if(encode !== 'AAA=' || src.byteLength !== decode.byteLength) throw Error('forge.util.binary.base64.encode / decode fail'); + if (encode !== 'AAA=' || src.byteLength !== decode.byteLength) throw Error('forge.util.binary.base64.encode / decode fail'); src = new Uint8Array(10); encode = forge.util.binary.raw.encode(src); decode = forge.util.binary.raw.decode(encode); - if(src.byteLength !== decode.byteLength) throw Error('forge.util.binary.raw.encode / decode fail'); + if (src.byteLength !== decode.byteLength) throw Error('forge.util.binary.raw.encode / decode fail'); } { @@ -70,9 +72,9 @@ if(forge.util.fillString('1', 5) !== '11111') throw Error('forge.util.fillString src = 'Test'; encode = forge.util.text.utf8.encode(src); decode = forge.util.text.utf8.decode(encode); - if(src !== decode) throw Error('forge.util.text.utf8.encode / decode fail'); + if (src !== decode) throw Error('forge.util.text.utf8.encode / decode fail'); src = 'Test'; encode = forge.util.text.utf16.encode(src); decode = forge.util.text.utf16.decode(encode); - if(src !== decode) throw Error('forge.util.text.utf8.encode / decode fail'); + if (src !== decode) throw Error('forge.util.text.utf8.encode / decode fail'); }