diff --git a/node-forge/node-forge-tests.ts b/node-forge/node-forge-tests.ts
new file mode 100644
index 0000000000..3882c8bd94
--- /dev/null
+++ b/node-forge/node-forge-tests.ts
@@ -0,0 +1,7 @@
+///
+
+import * as forge from "node-forge";
+
+let keypair = forge.pki.rsa.generateKeyPair({bits: 512});
+let privateKeyPem = forge.pki.privateKeyToPem(keypair.privateKey);
+let publicKeyPem = forge.pki.publicKeyToPem(keypair.publicKey);
diff --git a/node-forge/node-forge.d.ts b/node-forge/node-forge.d.ts
new file mode 100644
index 0000000000..8313cdd031
--- /dev/null
+++ b/node-forge/node-forge.d.ts
@@ -0,0 +1,40 @@
+// Type definitions for node-forge 0.6.42
+// Project: https://github.com/digitalbazaar/forge
+// Definitions by: Seth Westphal
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare module "node-forge" {
+
+ export namespace pki {
+
+ export type PEM = string;
+ export type Key = any;
+
+ export interface KeyPair {
+ publicKey: Key;
+ privateKey: Key;
+ }
+
+ export function privateKeyToPem(key: Key, maxline?: number): PEM;
+ export function publicKeyToPem(key: Key, maxline?: number): PEM;
+
+ export namespace rsa {
+
+ export interface GenerateKeyPairOptions {
+ bits?: number;
+ e?: number;
+ workerScript?: string;
+ workers?: number;
+ workLoad?: number;
+ prng?: any;
+ algorithm?: string;
+ }
+
+ export function generateKeyPair(bits?: number, e?: number, callback?: (err: Error, keypair: KeyPair) => void): KeyPair;
+ export function generateKeyPair(options?: GenerateKeyPairOptions, callback?: (err: Error, keypair: KeyPair) => void): KeyPair;
+
+ }
+
+ }
+
+}