@nfen/webcrypto-ts
Version:
Enforced Webcrypto wrapper
105 lines • 3.95 kB
TypeScript
/**
* Enforced parameters for algorithms
* @module
*/
import { Alg as AES } from "./aes/shared.js";
import { Alg as EC, EcdhPubCryptoKey } from "./ec/shared.js";
import { Alg as Authentication } from "./hmac/index.js";
import { Alg as KDF } from "./kdf/shared.js";
import { Alg as RSA } from "./rsa/shared.js";
import { Alg as SHA } from "./sha/shared.js";
export declare type AesBlockSize = 128 | 192 | 256;
export interface EnforcedRsaHashedKeyGenParams extends RsaHashedKeyGenParams {
name: RSA.Variants;
hash: SHA.SecureVariants;
modulusLength: 2048 | 4096;
}
export interface EnforcedEcKeyGenParams extends EcKeyGenParams {
name: EC.Variants;
namedCurve: EC.Curves;
}
export interface EnforcedAesKeyGenParams extends AesKeyGenParams {
name: AES.Modes;
length: AesBlockSize;
}
export interface EnforcedHmacKeyGenParams extends HmacKeyGenParams {
name: Authentication.Code.HMAC;
hash: SHA.SecureVariants;
length?: 512 | 1024;
}
export interface EnforcedRsaHashedImportParams extends RsaHashedImportParams {
name: RSA.Variants;
hash: SHA.SecureVariants;
}
export interface EnforcedEcKeyImportParams extends EcKeyImportParams {
name: EC.Variants;
namedCurve: EC.Curves;
}
export interface EnforcedHmacImportParams extends HmacImportParams {
name: Authentication.Code.HMAC;
hash: SHA.SecureVariants;
length?: 512 | 1024;
}
export interface EnforcedRsaOaepParams extends RsaOaepParams {
name: RSA.Variant.RSA_OAEP;
}
export interface EnforcedRsaPssParams extends RsaPssParams {
name: RSA.Variant.RSA_PSS;
}
export interface EnforcedRsassaPkcs1v15Params extends Algorithm {
name: RSA.Variant.RSASSA_PKCS1_v1_5;
}
export interface EnforcedEcdsaParams extends EcdsaParams {
name: EC.Variant.ECDSA;
hash: SHA.SecureVariants;
}
export interface EnforcedEcdhKeyDeriveParams extends EcdhKeyDeriveParams {
name: EC.Variant.ECDH;
public: EcdhPubCryptoKey;
}
export interface AesGcmKeyAlgorithm extends AesKeyAlgorithm {
name: AES.Mode.AES_GCM;
length: AesBlockSize;
}
export interface EnforcedAesGcmParams extends AesGcmParams {
tagLength?: 32 | 64 | 96 | 104 | 112 | 120 | 128;
}
export interface AesCtrKeyAlgorithm extends AesKeyAlgorithm {
name: AES.Mode.AES_CTR;
length: AesBlockSize;
}
export interface EnforcedAesCtrParams extends AesCtrParams {
name: AES.Mode.AES_CTR;
}
export interface AesCbcKeyAlgorithm extends AesKeyAlgorithm {
name: AES.Mode.AES_CBC;
length: AesBlockSize;
}
export interface EnforcedAesCbcParams extends AesCbcParams {
name: AES.Mode.AES_CBC;
}
export interface AesKwKeyAlgorithm extends KeyAlgorithm {
name: AES.Mode.AES_KW;
}
export interface EnforcedAesKwParams {
name: AES.Mode.AES_KW;
}
export interface EnforcedHkdfParams extends HkdfParams {
name: KDF.Variant.HKDF;
hash: SHA.SecureVariants;
}
export interface EnforcedPbkdf2Params extends Pbkdf2Params {
name: KDF.Variant.PBKDF2;
hash: SHA.Variants;
iterations: 1300000 | 600000 | 600000 | 210000;
}
export interface HmacKeyAlgorithm extends KeyAlgorithm {
name: Authentication.Code.HMAC;
}
export declare type EnforcedAesKeyAlgorithms = AesGcmKeyAlgorithm | AesCtrKeyAlgorithm | AesCbcKeyAlgorithm | AesKwKeyAlgorithm;
export declare type EnforcedAesKeyAlgorithmNames = Pick<EnforcedAesKeyAlgorithms, "name">;
export declare type EnforcedAesParams = EnforcedAesGcmParams | EnforcedAesCtrParams | EnforcedAesCbcParams | EnforcedAesKwParams;
export declare type EnforcedImportParams = EnforcedRsaHashedImportParams | EnforcedEcKeyImportParams | EnforcedHmacImportParams | EnforcedAesKeyAlgorithmNames;
export declare type EnforcedKeyGenParams = EnforcedRsaHashedKeyGenParams | EnforcedEcKeyGenParams | EnforcedHmacKeyGenParams | EnforcedAesKeyGenParams;
export declare type EnforcedKeyDeriveParams = EnforcedEcdhKeyDeriveParams | EnforcedHkdfParams | EnforcedPbkdf2Params;
//# sourceMappingURL=params.d.ts.map