Skip to content
This repository has been archived by the owner on Sep 14, 2021. It is now read-only.

Add support for http2 #98

Merged
merged 6 commits into from
Oct 5, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ Navigate to `localhost:8080/components/my-element/demo.html`
* `-o` Opens your default browser to an initial page, e.g. "demo" or "index.html"
* `-b <browsername>` use this browser instead of default (ex: 'Google Chrome Canary')
* `-H <hostname>` use this hostname instead of localhost
* `-P <protocol>` The server protocol to use {`h2`, `https/1.1`, `http/1.1`}. **`h2` requires Node 5+.**
* `-key <path>` Path to TLS certificate private key file for https. Defaults to "key.pem".
* `-cert <path>` Path to TLS certificate file for https. Defaults to "cert.pem".
* `-manifest <path>` Path to h2-push manifest

## Compiling from Source

Expand Down
155 changes: 155 additions & 0 deletions custom_typings/pem.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
// Type definitions for PEM v1.8.3
// Project: https://github.com/andris9/pem
// Definitions by: Anthony Trinh <https://github.com/tony19>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped

declare module "pem" {
/**
* Creates a private key
*
* @param {Number} [keyBitsize=2048] Size of the key, defaults to 2048bit (can also be a function)
* @param {Object} [options] object of cipher and password {cipher:'aes128',password:'xxx'}, defaults empty object
* @param {Function} callback Callback function with an error object and {key}
*/
function createPrivateKey(keyBitsize: Number, options: Object, callback: Function): void;
function createPrivateKey(keyBitsize: Number, callback: Function): void;
function createPrivateKey(options: Object, callback: Function): void;
function createPrivateKey(callback: Function): void;

/**
* Creates a dhparam key
*
* @param {Number} [keyBitsize=512] Size of the key, defaults to 512bit
* @param {Function} callback Callback function with an error object and {dhparam}
*/
function createDhparam(keyBitsize: Number, callback: Function): void;
function createDhparam(callback: Function): void;

/**
* Creates a Certificate Signing Request
*
* If client key is undefined, a new key is created automatically. The used key is included
* in the callback return as clientKey
*
* @param {Object} [options] Optional options object
* @param {String} [options.clientKey] Optional client key to use
* @param {Number} [options.keyBitsize] If clientKey is undefined, bit size to use for generating a new key (defaults to 2048)
* @param {String} [options.hash] Hash function to use (either md5 sha1 or sha256, defaults to sha256)
* @param {String} [options.country] CSR country field
* @param {String} [options.state] CSR state field
* @param {String} [options.locality] CSR locality field
* @param {String} [options.organization] CSR organization field
* @param {String} [options.organizationUnit] CSR organizational unit field
* @param {String} [options.commonName='localhost'] CSR common name field
* @param {String} [options.emailAddress] CSR email address field
* @param {String} [options.csrConfigFile] CSR config file
* @param {Array} [options.altNames] is a list of subjectAltNames in the subjectAltName field
* @param {Function} callback Callback function with an error object and {csr, clientKey}
*/
function createCSR(options: Object, callback: Function): void;
function createCSR(callback: Function): void;

/**
* Creates a certificate based on a CSR. If CSR is not defined, a new one
* will be generated automatically. For CSR generation all the options values
* can be used as with createCSR.
*
* @param {Object} [options] Optional options object
* @param {String} [options.serviceKey] Private key for signing the certificate, if not defined a new one is generated
* @param {String} [options.serviceKeyPassword] Password of the service key
* @param {Boolean} [options.selfSigned] If set to true and serviceKey is not defined, use clientKey for signing
* @param {String} [options.hash] Hash function to use (either md5 sha1 or sha256, defaults to sha256)
* @param {String} [options.csr] CSR for the certificate, if not defined a new one is generated
* @param {Number} [options.days] Certificate expire time in days
* @param {String} [options.clientKeyPassword] Password of the client key
* @param {String} [options.extFile] extension config file - without '-extensions v3_req'
* @param {String} [options.config] extension config file - with '-extensions v3_req'
* @param {Function} callback Callback function with an error object and {certificate, csr, clientKey, serviceKey}
*/
function createCertificate(options: Object, callback: Function): void;
function createCertificate(callback: Function): void;

/**
* Reads subject data from a certificate or a CSR
*
* @param {String} certificate PEM encoded CSR or certificate
* @param {Function} callback Callback function with an error object and {country, state, locality, organization, organizationUnit, commonName, emailAddress}
*/
function readCertificateInfo(certificate: string, callback: Function): void;
function readCertificateInfo(callback: Function): void;

/**
* Exports a public key from a private key, CSR or certificate
*
* @param {String} certificate PEM encoded private key, CSR or certificate
* @param {Function} callback Callback function with an error object and {publicKey}
*/
function getPublicKey(certificate: string, callback: Function): void;
function getPublicKey(callback: Function): void;

/**
* Gets the fingerprint for a certificate
*
* @param {String} certificate PEM encoded certificate
* @param {String} hash Hash function to use (either md5 sha1 or sha256, defaults to sha256)
* @param {Function} callback Callback function with an error object and {fingerprint}
*/
function getFingerprint(certificate: string, hash: string, callback: Function): void;
function getFingerprint(certificate: string, callback: Function): void;
function getFingerprint(callback: Function): void;

/**
* Gets the modulus from a certificate, a CSR or a private key
*
* @param {String} certificate PEM encoded, CSR PEM encoded, or private key
* @param {String} password password for the certificate
* @param {Function} callback Callback function with an error object and {modulus}
*/
function getModulus(certificate: string, password: string, callback: Function): void;
function getModulus(certificate: string, callback: Function): void;

/**
* Gets the size and prime of DH parameters
*
* @param {String} dh DH parameters PEM encoded
* @param {Function} callback Callback function with an error object and {size, prime}
*/
function getDhparamInfo(dh: string, callback: Function): void;

/**
* Exports private key and certificate to a PKCS12 keystore
*
* @param {String} key PEM encoded private key
* @param {String} certificate PEM encoded certificate
* @param {String} password Password of the result PKCS12 file
* @param {Object} [options] object of cipher and optional client key password {cipher:'aes128', clientKeyPassword: 'xxx'}
* @param {Function} callback Callback function with an error object and {pkcs12}
*/
function createPkcs12(key: string, certificate: string, password: string, options: Object, callback: Function): void;
function createPkcs12(key: string, certificate: string, password: string, callback: Function): void;

/**
* Reads private key and certificate from a PKCS12 keystore
* @param {String} bufferOrPath
* @param {Object} [options] object of cipher and optional client key password {cipher:'aes128', clientKeyPassword: 'xxx'}
* @param {Function} callback Callback function with an error object and {pkcs12}
* @returns the result of the callback
*/
function readPkcs12(bufferOrPath: string, options: Object, callback: Function): any;
function readPkcs12(options: Object, callback: Function): any;

/**
* Verifies the signing chain of the passed certificate
*
* @param {String} certificate PEM encoded certificate
* @param {Array} ca List of CA certificates
* @param {Function} callback Callback function with an error object and a boolean valid
*/
function verifySigningChain(certificate: string, ca: Array<string>, callback: Function): void;

/**
* config the pem module
* @param {Object} options
*/
function config(options: Object): void;
}
Loading