Socket
Socket
Sign inDemoInstall

webcrypto-core

Package Overview
Dependencies
Maintainers
2
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webcrypto-core - npm Package Compare versions

Comparing version 1.7.9 to 1.8.0

18

build/index.d.ts

@@ -400,2 +400,16 @@ /*!

declare abstract class X25519Provider extends ProviderCrypto {
readonly name: string;
usages: ProviderKeyUsages;
checkAlgorithmParams(algorithm: EcdhKeyDeriveParams): void;
abstract onDeriveBits(algorithm: EcdhKeyDeriveParams, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;
}
declare abstract class Ed25519Provider extends ProviderCrypto {
readonly name: string;
usages: ProviderKeyUsages;
abstract onSign(algorithm: Algorithm, key: CryptoKey, data: ArrayBuffer, ...args: any[]): Promise<ArrayBuffer>;
abstract onVerify(algorithm: Algorithm, key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer, ...args: any[]): Promise<boolean>;
}
declare abstract class HmacProvider extends ProviderCrypto {

@@ -488,3 +502,3 @@ name: string;

exportKey(format: KeyFormat, key: globalThis.CryptoKey, ...args: any[]): Promise<JsonWebKey | ArrayBuffer>;
importKey(format: KeyFormat, keyData: JsonWebKey | BufferSource, algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise<globalThis.CryptoKey>;
importKey(...args: any[]): Promise<globalThis.CryptoKey>;
wrapKey(format: KeyFormat, key: globalThis.CryptoKey, wrappingKey: globalThis.CryptoKey, wrapAlgorithm: AlgorithmIdentifier, ...args: any[]): Promise<ArrayBuffer>;

@@ -919,2 +933,2 @@ unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: globalThis.CryptoKey, unwrapAlgorithm: AlgorithmIdentifier, unwrappedKeyAlgorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[], ...args: any[]): Promise<globalThis.CryptoKey>;

export { AesCbcProvider, type AesCmacParams, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto$1 as Crypto, type CryptoCertificate, type CryptoCertificateFormat, type CryptoCertificateStorage, type CryptoCertificateType, CryptoError, CryptoKey$1 as CryptoKey, type CryptoKeyStorage, type CryptoStorage, type CryptoStorages, type CryptoX509Certificate, type CryptoX509CertificateRequest, type DesDerivedKeyParams, type DesImportParams, type DesKeyAlgorithm, type DesKeyGenParams, type DesParams, DesProvider, type EcCurve, type EcCurveParams, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, EdDsaProvider, EllipticProvider, type HashedAlgorithm, type HexString, HkdfProvider, HmacProvider, type IProviderCheckOptions, type ImportAlgorithms, JwkUtils, type KeyAlgorithm, type KeyUsages, type NativeCrypto, type NativeCryptoKey, type NativeSubtleCrypto, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, type ProviderKeyPairUsage, type ProviderKeyUsage, type ProviderKeyUsages, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, type RsaSsaParams, RsaSsaProvider, Shake128Provider, Shake256Provider, type ShakeParams, ShakeProvider, SubtleCrypto$1 as SubtleCrypto, UnsupportedOperationError, index$2 as asn1, isJWK, index as json };
export { AesCbcProvider, type AesCmacParams, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto$1 as Crypto, type CryptoCertificate, type CryptoCertificateFormat, type CryptoCertificateStorage, type CryptoCertificateType, CryptoError, CryptoKey$1 as CryptoKey, type CryptoKeyStorage, type CryptoStorage, type CryptoStorages, type CryptoX509Certificate, type CryptoX509CertificateRequest, type DesDerivedKeyParams, type DesImportParams, type DesKeyAlgorithm, type DesKeyGenParams, type DesParams, DesProvider, type EcCurve, type EcCurveParams, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, Ed25519Provider, EdDsaProvider, EllipticProvider, type HashedAlgorithm, type HexString, HkdfProvider, HmacProvider, type IProviderCheckOptions, type ImportAlgorithms, JwkUtils, type KeyAlgorithm, type KeyUsages, type NativeCrypto, type NativeCryptoKey, type NativeSubtleCrypto, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, type ProviderKeyPairUsage, type ProviderKeyUsage, type ProviderKeyUsages, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, type RsaSsaParams, RsaSsaProvider, Shake128Provider, Shake256Provider, type ShakeParams, ShakeProvider, SubtleCrypto$1 as SubtleCrypto, UnsupportedOperationError, X25519Provider, index$2 as asn1, isJWK, index as json };

@@ -1166,2 +1166,27 @@ /*!

class X25519Provider extends ProviderCrypto {
constructor() {
super(...arguments);
this.name = "X25519";
this.usages = {
privateKey: ["deriveKey", "deriveBits"],
publicKey: [],
};
}
checkAlgorithmParams(algorithm) {
this.checkRequiredProperty(algorithm, "public");
}
}
class Ed25519Provider extends ProviderCrypto {
constructor() {
super(...arguments);
this.name = "Ed25519";
this.usages = {
privateKey: ["sign"],
publicKey: ["verify"],
};
}
}
class HmacProvider extends ProviderCrypto {

@@ -1344,2 +1369,9 @@ constructor() {

const keyFormatMap = {
"jwk": ["private", "public", "secret"],
"pkcs8": ["private"],
"spki": ["public"],
"raw": ["secret", "public"]
};
const sourceBufferKeyFormats = ["pkcs8", "spki", "raw"];
class SubtleCrypto {

@@ -1443,2 +1475,8 @@ constructor() {

this.checkCryptoKey(key);
if (!keyFormatMap[format]) {
throw new TypeError("Invalid keyFormat argument");
}
if (!keyFormatMap[format].includes(key.type)) {
throw new DOMException("The key is not of the expected type");
}
const provider = this.getProvider(key.algorithm.name);

@@ -1453,11 +1491,15 @@ const result = await provider.exportKey(format, key, ...params);

const provider = this.getProvider(preparedAlgorithm.name);
if (["pkcs8", "spki", "raw"].indexOf(format) !== -1) {
const preparedData = BufferSourceConverter.toArrayBuffer(keyData);
return provider.importKey(format, preparedData, { ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);
if (format === "jwk") {
if (typeof keyData !== "object" || !keyData.kty) {
throw new TypeError("Key data must be an object for JWK import");
}
}
else {
if (!keyData.kty) {
throw new TypeError("keyData: Is not JSON");
else if (sourceBufferKeyFormats.includes(format)) {
if (!BufferSourceConverter.isBufferSource(keyData)) {
throw new TypeError("Key data must be a BufferSource for non-JWK formats");
}
}
else {
throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView or JsonWebKey)'");
}
return provider.importKey(format, keyData, { ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);

@@ -1546,2 +1588,2 @@ }

export { AesCbcProvider, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto, CryptoError, CryptoKey, DesProvider, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, EdDsaProvider, EllipticProvider, HkdfProvider, HmacProvider, JwkUtils, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, RsaSsaProvider, Shake128Provider, Shake256Provider, ShakeProvider, SubtleCrypto, UnsupportedOperationError, index$1 as asn1, isJWK, index as json };
export { AesCbcProvider, AesCmacProvider, AesCtrProvider, AesEcbProvider, AesGcmProvider, AesKwProvider, AesProvider, AlgorithmError, Crypto, CryptoError, CryptoKey, DesProvider, EcCurves, EcUtils, EcdhEsProvider, EcdhProvider, EcdsaProvider, Ed25519Provider, EdDsaProvider, EllipticProvider, HkdfProvider, HmacProvider, JwkUtils, OperationError, Pbkdf2Provider, PemConverter, ProviderCrypto, ProviderStorage, RequiredPropertyError, RsaOaepProvider, RsaProvider, RsaPssProvider, RsaSsaProvider, Shake128Provider, Shake256Provider, ShakeProvider, SubtleCrypto, UnsupportedOperationError, X25519Provider, index$1 as asn1, isJWK, index as json };

@@ -1186,2 +1186,27 @@ /*!

class X25519Provider extends ProviderCrypto {
constructor() {
super(...arguments);
this.name = "X25519";
this.usages = {
privateKey: ["deriveKey", "deriveBits"],
publicKey: [],
};
}
checkAlgorithmParams(algorithm) {
this.checkRequiredProperty(algorithm, "public");
}
}
class Ed25519Provider extends ProviderCrypto {
constructor() {
super(...arguments);
this.name = "Ed25519";
this.usages = {
privateKey: ["sign"],
publicKey: ["verify"],
};
}
}
class HmacProvider extends ProviderCrypto {

@@ -1364,2 +1389,9 @@ constructor() {

const keyFormatMap = {
"jwk": ["private", "public", "secret"],
"pkcs8": ["private"],
"spki": ["public"],
"raw": ["secret", "public"]
};
const sourceBufferKeyFormats = ["pkcs8", "spki", "raw"];
class SubtleCrypto {

@@ -1463,2 +1495,8 @@ constructor() {

this.checkCryptoKey(key);
if (!keyFormatMap[format]) {
throw new TypeError("Invalid keyFormat argument");
}
if (!keyFormatMap[format].includes(key.type)) {
throw new DOMException("The key is not of the expected type");
}
const provider = this.getProvider(key.algorithm.name);

@@ -1473,11 +1511,15 @@ const result = await provider.exportKey(format, key, ...params);

const provider = this.getProvider(preparedAlgorithm.name);
if (["pkcs8", "spki", "raw"].indexOf(format) !== -1) {
const preparedData = pvtsutils.BufferSourceConverter.toArrayBuffer(keyData);
return provider.importKey(format, preparedData, { ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);
if (format === "jwk") {
if (typeof keyData !== "object" || !keyData.kty) {
throw new TypeError("Key data must be an object for JWK import");
}
}
else {
if (!keyData.kty) {
throw new TypeError("keyData: Is not JSON");
else if (sourceBufferKeyFormats.includes(format)) {
if (!pvtsutils.BufferSourceConverter.isBufferSource(keyData)) {
throw new TypeError("Key data must be a BufferSource for non-JWK formats");
}
}
else {
throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView or JsonWebKey)'");
}
return provider.importKey(format, keyData, { ...preparedAlgorithm, name: provider.name }, extractable, keyUsages, ...params);

@@ -1587,2 +1629,3 @@ }

exports.EcdsaProvider = EcdsaProvider;
exports.Ed25519Provider = Ed25519Provider;
exports.EdDsaProvider = EdDsaProvider;

@@ -1608,4 +1651,5 @@ exports.EllipticProvider = EllipticProvider;

exports.UnsupportedOperationError = UnsupportedOperationError;
exports.X25519Provider = X25519Provider;
exports.asn1 = index$1;
exports.isJWK = isJWK;
exports.json = index;

20

package.json
{
"name": "webcrypto-core",
"version": "1.7.9",
"version": "1.8.0",
"description": "Common layer to be used by crypto libraries based on WebCrypto API for input validation.",

@@ -49,15 +49,15 @@ "main": "build/webcrypto-core.js",

"@types/mocha": "^10.0.6",
"@types/node": "^20.11.5",
"@types/node": "^20.12.12",
"@typescript-eslint/eslint-plugin": "^7.11.0",
"@typescript-eslint/parser": "^7.11.0",
"coveralls": "^3.1.1",
"@typescript-eslint/eslint-plugin": "^6.17.0",
"@typescript-eslint/parser": "^6.17.0",
"eslint": "^8.56.0",
"mocha": "^10.2.0",
"eslint": "^8.57.0",
"mocha": "^10.4.0",
"nyc": "^15.1.0",
"rimraf": "^5.0.5",
"rollup": "^4.9.6",
"rollup-plugin-dts": "^6.1.0",
"rimraf": "^5.0.7",
"rollup": "^4.18.0",
"rollup-plugin-dts": "^6.1.1",
"rollup-plugin-typescript2": "^0.36.0",
"ts-node": "^10.9.2",
"typescript": "^5.3.3"
"typescript": "^5.4.5"
},

@@ -64,0 +64,0 @@ "author": "PeculiarVentures",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc