Merge pull request #11084 from plantain-00/node-crypto-2

fix types of node crypto module
This commit is contained in:
Zhengbo Li
2016-09-09 10:40:46 -07:00
committed by GitHub
+84 -42
View File
@@ -2288,6 +2288,18 @@ declare module "tls" {
}
declare module "crypto" {
export interface Certificate {
exportChallenge(spkac: string | Buffer): Buffer;
exportPublicKey(spkac: string | Buffer): Buffer;
verifySpkac(spkac: Buffer): boolean;
}
export var Certificate: {
new (): Certificate;
(): Certificate;
}
export var fips: boolean;
export interface CredentialDetails {
pfx: string;
key: string;
@@ -2300,72 +2312,93 @@ declare module "crypto" {
export interface Credentials { context?: any; }
export function createCredentials(details: CredentialDetails): Credentials;
export function createHash(algorithm: string): Hash;
export function createHmac(algorithm: string, key: string): Hmac;
export function createHmac(algorithm: string, key: Buffer): Hmac;
export interface Hash {
update(data: any, input_encoding?: string): Hash;
digest(encoding: 'buffer'): Buffer;
digest(encoding: string): any;
export function createHmac(algorithm: string, key: string | Buffer): Hmac;
type Utf8AsciiLatin1Encoding = "utf8" | "ascii" | "latin1";
type HexBase64Latin1Encoding = "latin1" | "hex" | "base64";
type Utf8AsciiBinaryEncoding = "utf8" | "ascii" | "binary";
type HexBase64BinaryEncoding = "binary" | "base64" | "hex";
type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid";
export interface Hash extends NodeJS.ReadWriteStream {
update(data: string | Buffer): Hash;
update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Hash;
digest(): Buffer;
digest(encoding: HexBase64Latin1Encoding): string;
}
export interface Hmac extends NodeJS.ReadWriteStream {
update(data: any, input_encoding?: string): Hmac;
digest(encoding: 'buffer'): Buffer;
digest(encoding: string): any;
update(data: string | Buffer): Hmac;
update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Hmac;
digest(): Buffer;
digest(encoding: HexBase64Latin1Encoding): string;
}
export function createCipher(algorithm: string, password: any): Cipher;
export function createCipheriv(algorithm: string, key: any, iv: any): Cipher;
export interface Cipher extends NodeJS.ReadWriteStream {
update(data: Buffer): Buffer;
update(data: string, input_encoding: "utf8" | "ascii" | "binary"): Buffer;
update(data: Buffer, input_encoding: any, output_encoding: "binary" | "base64" | "hex"): string;
update(data: string, input_encoding: "utf8" | "ascii" | "binary", output_encoding: "binary" | "base64" | "hex"): string;
update(data: string, input_encoding: Utf8AsciiBinaryEncoding): Buffer;
update(data: Buffer, input_encoding: any, output_encoding: HexBase64BinaryEncoding): string;
update(data: string, input_encoding: Utf8AsciiBinaryEncoding, output_encoding: HexBase64BinaryEncoding): string;
final(): Buffer;
final(output_encoding: string): string;
setAutoPadding(auto_padding: boolean): void;
setAutoPadding(auto_padding?: boolean): void;
getAuthTag(): Buffer;
setAAD(buffer: Buffer): void;
}
export function createDecipher(algorithm: string, password: any): Decipher;
export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher;
export interface Decipher extends NodeJS.ReadWriteStream {
update(data: Buffer): Buffer;
update(data: string, input_encoding: "binary" | "base64" | "hex"): Buffer;
update(data: Buffer, input_encoding: any, output_encoding: "utf8" | "ascii" | "binary"): string;
update(data: string, input_encoding: "binary" | "base64" | "hex", output_encoding: "utf8" | "ascii" | "binary"): string;
update(data: string, input_encoding: HexBase64BinaryEncoding): Buffer;
update(data: Buffer, input_encoding: any, output_encoding: Utf8AsciiBinaryEncoding): string;
update(data: string, input_encoding: HexBase64BinaryEncoding, output_encoding: Utf8AsciiBinaryEncoding): string;
final(): Buffer;
final(output_encoding: string): string;
setAutoPadding(auto_padding: boolean): void;
setAutoPadding(auto_padding?: boolean): void;
setAuthTag(tag: Buffer): void;
setAAD(buffer: Buffer): void;
}
export function createSign(algorithm: string): Signer;
export interface Signer extends NodeJS.WritableStream {
update(data: any): void;
sign(private_key: string): Buffer;
sign(private_key: string, output_format: 'latin1' | 'hex' | 'base64'): string;
update(data: string | Buffer): Signer;
update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Signer;
sign(private_key: string | { key: string; passphrase: string }): Buffer;
sign(private_key: string | { key: string; passphrase: string }, output_format: HexBase64Latin1Encoding): string;
}
export function createVerify(algorith: string): Verify;
export interface Verify extends NodeJS.WritableStream {
update(data: any): void;
update(data: string | Buffer): Verify;
update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Verify;
verify(object: string, signature: Buffer): boolean;
verify(object: string, signature: string, signature_format: 'latin1' | 'hex' | 'base64'): boolean;
verify(object: string, signature: string, signature_format: HexBase64Latin1Encoding): boolean;
}
export function createDiffieHellman(prime_length: number): DiffieHellman;
export function createDiffieHellman(prime: number, encoding?: string): DiffieHellman;
export function createDiffieHellman(prime_length: number, generator?: number): DiffieHellman;
export function createDiffieHellman(prime: Buffer): DiffieHellman;
export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding): DiffieHellman;
export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: number | Buffer): DiffieHellman;
export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: string, generator_encoding: HexBase64Latin1Encoding): DiffieHellman;
export interface DiffieHellman {
generateKeys(encoding?: string): string;
computeSecret(other_public_key: string, input_encoding?: string, output_encoding?: string): string;
getPrime(encoding?: string): string;
getGenerator(encoding: string): string;
getPublicKey(encoding?: string): string;
getPrivateKey(encoding?: string): string;
setPublicKey(public_key: string, encoding?: string): void;
setPrivateKey(public_key: string, encoding?: string): void;
generateKeys(): Buffer;
generateKeys(encoding: HexBase64Latin1Encoding): string;
computeSecret(other_public_key: Buffer): Buffer;
computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer;
computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string;
getPrime(): Buffer;
getPrime(encoding: HexBase64Latin1Encoding): string;
getGenerator(): Buffer;
getGenerator(encoding: HexBase64Latin1Encoding): string;
getPublicKey(): Buffer;
getPublicKey(encoding: HexBase64Latin1Encoding): string;
getPrivateKey(): Buffer;
getPrivateKey(encoding: HexBase64Latin1Encoding): string;
setPublicKey(public_key: Buffer): void;
setPublicKey(public_key: string, encoding: string): void;
setPrivateKey(private_key: Buffer): void;
setPrivateKey(private_key: string, encoding: string): void;
verifyError: number;
}
export function getDiffieHellman(group_name: string): DiffieHellman;
export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, callback: (err: Error, derivedKey: Buffer) => any): void;
export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string, callback: (err: Error, derivedKey: Buffer) => any): void;
export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number): Buffer;
export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string): Buffer;
export function randomBytes(size: number): Buffer;
export function randomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;
@@ -2373,25 +2406,34 @@ declare module "crypto" {
export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;
export interface RsaPublicKey {
key: string;
padding?: any;
padding?: number;
}
export interface RsaPrivateKey {
key: string;
passphrase?: string,
padding?: any;
padding?: number;
}
export function publicEncrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer
export function privateDecrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer
export function privateEncrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer
export function publicDecrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer
export function getCiphers(): string[];
export function getCurves(): string[];
export function getHashes(): string[];
export interface ECDH {
computeSecret(other_public_key: string, input_encoding?: string, output_encoding?: string): string | Buffer;
generateKeys(encoding?: string, format?: string): string | Buffer;
getPrivateKey(encoding?: string): string | Buffer;
getPublicKey(encodind?: string): string | Buffer;
setPrivateKey(private_key: string | Buffer, encoding?: string): void;
setPublicKey(publick_key: string | Buffer, encoding?: string): void;
generateKeys(): Buffer;
generateKeys(encoding: HexBase64Latin1Encoding): string;
generateKeys(encoding: HexBase64Latin1Encoding, format: ECDHKeyFormat): string;
computeSecret(other_public_key: Buffer): Buffer;
computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer;
computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string;
getPrivateKey(): Buffer;
getPrivateKey(encoding: HexBase64Latin1Encoding): string;
getPublicKey(): Buffer;
getPublicKey(encoding: HexBase64Latin1Encoding): string;
getPublicKey(encoding: HexBase64Latin1Encoding, format: ECDHKeyFormat): string;
setPrivateKey(private_key: Buffer): void;
setPrivateKey(private_key: string, encoding: HexBase64Latin1Encoding): void;
}
export function createECDH(curve_name: string): ECDH;
}