mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
Adding a new package: jwk-to-pem (#38511)
* Add jwk-to-pem * Updated to follow module-function.d.ts template
This commit is contained in:
parent
463d84f64d
commit
27f6e1e2e7
43
types/jwk-to-pem/index.d.ts
vendored
Normal file
43
types/jwk-to-pem/index.d.ts
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
// Type definitions for jwk-to-pem 2.0
|
||||
// Project: https://github.com/Brightspace/node-jwk-to-pem#readme
|
||||
// Definitions by: Erik Silkensen <https://github.com/esilkensen>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
export = jwkToBuffer;
|
||||
|
||||
declare function jwkToBuffer(jwk: jwkToBuffer.JWK, opts?: jwkToBuffer.Options): string;
|
||||
|
||||
declare namespace jwkToBuffer {
|
||||
interface Options {
|
||||
private: boolean;
|
||||
}
|
||||
|
||||
interface EC {
|
||||
kty: "EC";
|
||||
crv: string;
|
||||
x: string;
|
||||
y: string;
|
||||
}
|
||||
|
||||
interface ECPrivate {
|
||||
kty: "EC";
|
||||
crv: string;
|
||||
d: string;
|
||||
x?: string;
|
||||
y?: string;
|
||||
}
|
||||
|
||||
interface RSA {
|
||||
kty: "RSA";
|
||||
e: string;
|
||||
n: string;
|
||||
d?: string;
|
||||
p?: string;
|
||||
q?: string;
|
||||
dp?: string;
|
||||
dq?: string;
|
||||
qi?: string;
|
||||
}
|
||||
|
||||
type JWK = EC | ECPrivate | RSA;
|
||||
}
|
||||
68
types/jwk-to-pem/jwk-to-pem-tests.ts
Normal file
68
types/jwk-to-pem/jwk-to-pem-tests.ts
Normal file
@ -0,0 +1,68 @@
|
||||
import jwkToPem = require('jwk-to-pem');
|
||||
|
||||
const jwk: jwkToPem.JWK = { kty: 'EC', crv: 'P-256', x: '...', y: '...' };
|
||||
jwkToPem(jwk); // $ExpectType string
|
||||
|
||||
jwkToPem('hi'); // $ExpectError
|
||||
jwkToPem(null); // $ExpectError
|
||||
jwkToPem({ kty: {} }); // $ExpectError
|
||||
jwkToPem({ kty: 'foozleberries' }); // $ExpectError
|
||||
|
||||
const ec1: jwkToPem.JWK = {
|
||||
crv: 'P-256',
|
||||
kty: 'EC',
|
||||
x: 'gh9MmXjtmcHFesofqWZ6iuxSdAYgoPVvfJqpv1818lo',
|
||||
y: '3BDZHsNvKUb5VbyGPqcAFf4FGuPhJ2Xy215oWDw_1jc',
|
||||
};
|
||||
jwkToPem(ec1); // $ExpectType string
|
||||
|
||||
const ec2: jwkToPem.JWK = {
|
||||
kty: 'EC',
|
||||
crv: 'P-256',
|
||||
d: '870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE',
|
||||
};
|
||||
jwkToPem(ec2); // $ExpectType string
|
||||
jwkToPem(ec2, { private: true }); // $ExpectType string
|
||||
jwkToPem(ec2, {}); // $ExpectError
|
||||
jwkToPem(ec2, { foo: 'bar' }); // $ExpectError
|
||||
jwkToPem(ec2, 'foo'); // $ExpectError
|
||||
|
||||
const ec5: jwkToPem.JWK = {
|
||||
crv: 'P-384',
|
||||
kty: 'EC',
|
||||
x: 'QIRvRhN2MpnTQ4teO4Y_RYFaK2Qlvc2lbhC0vALwrFOy33kUihkNUvHiTaUsp2W3',
|
||||
y: 'vSA1sCKKzT4UOavStUL2WpwcCflEyDshzy3dc1IZtACUngU2xMDDMsi0gDL9jLiU',
|
||||
};
|
||||
jwkToPem(ec5); // $ExpectType string
|
||||
|
||||
jwkToPem({ kty: 'EC', x: 'foo', y: 'bar' }); // $ExpectError
|
||||
jwkToPem({ kty: 'EC', crv: {}, x: 'foo', y: 'bar' }); // $ExpectError
|
||||
jwkToPem({ kty: 'EC', crv: 'P-256', y: 'bar' }); // $ExpectError
|
||||
jwkToPem({ kty: 'EC', crv: 'P-256', x: {}, y: 'bar' }); // $ExpectError
|
||||
jwkToPem({ kty: 'EC', crv: 'P-256', x: 'foo' }); // $ExpectError
|
||||
jwkToPem({ kty: 'EC', crv: 'P-256', x: 'foo', y: {} }); // $ExpectError
|
||||
|
||||
const rsa1: jwkToPem.JWK = {
|
||||
kty: 'RSA',
|
||||
n: '...',
|
||||
e: 'AQAB',
|
||||
};
|
||||
jwkToPem(rsa1); // $ExpectType string
|
||||
|
||||
const rsa2: jwkToPem.JWK = {
|
||||
kty: 'RSA',
|
||||
n: '...',
|
||||
e: 'AQAB',
|
||||
d: '...',
|
||||
p: '...',
|
||||
q: '...',
|
||||
dp: '...',
|
||||
dq: '...',
|
||||
qi: '...',
|
||||
};
|
||||
jwkToPem(rsa2); // $ExpectType string
|
||||
|
||||
jwkToPem({ kty: 'RSA', e: 'AQAB' }); // $ExpectError
|
||||
jwkToPem({ kty: 'RSA', n: {}, e: 'AQAB' }); // $ExpectError
|
||||
jwkToPem({ kty: 'RSA', n: 'foo' }); // $ExpectError
|
||||
jwkToPem({ kty: 'RSA', n: 'foo', e: {} }); // $ExpectError
|
||||
23
types/jwk-to-pem/tsconfig.json
Normal file
23
types/jwk-to-pem/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"jwk-to-pem-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/jwk-to-pem/tslint.json
Normal file
1
types/jwk-to-pem/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user