Skip to content

Commit

Permalink
fix: eslint errors
Browse files Browse the repository at this point in the history
  • Loading branch information
microshine committed Jan 22, 2024
1 parent a87b1e4 commit 332c79f
Show file tree
Hide file tree
Showing 17 changed files with 774 additions and 764 deletions.
1 change: 1 addition & 0 deletions .eslintrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ rules:
"@typescript-eslint/no-unused-vars":
- warn
- argsIgnorePattern: "^_"
"@typescript-eslint/no-explicit-any": 0
2 changes: 1 addition & 1 deletion src/assert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export class Assert {

public static requiredParameter(parameter: any, parameterName: string): asserts parameter {
if (!parameter) {
throw new Error(`Absent mandatory parameter \"${parameterName}\"`);
throw new Error(`Absent mandatory parameter "${parameterName}"`);
}
}

Expand Down
5 changes: 3 additions & 2 deletions src/cert_storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export interface IGetValue {
* Returns item blob
* @param key Object identifier
*/
getValue(key: string): Promise<ArrayBuffer | null>
getValue(key: string): Promise<ArrayBuffer | null>;
}
export class CertificateStorage implements core.CryptoCertificateStorage, IGetValue {

Expand Down Expand Up @@ -104,6 +104,7 @@ export class CertificateStorage implements core.CryptoCertificateStorage, IGetVa
}
return x509request;
} else {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
return null;
}
Expand Down Expand Up @@ -131,7 +132,7 @@ export class CertificateStorage implements core.CryptoCertificateStorage, IGetVa
attributes: {
token: true,
}
})
});
const obj = this.crypto.session.copy(data.p11Object, template);
return certs.CryptoCertificate.getID(obj.toType<any>());
} else {
Expand Down
3 changes: 2 additions & 1 deletion src/certs/csr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export class X509CertificateRequest extends CryptoCertificate implements core.Cr
public get subjectName(): string {
return this.getData()?.subject;
}
public override type: "request" = "request";
public override type = "request" as const;
declare public p11Object?: graphene.Data;
public csr?: x509.Pkcs10CertificateRequest;

Expand All @@ -42,6 +42,7 @@ export class X509CertificateRequest extends CryptoCertificate implements core.Cr
const array = new Uint8Array(data).buffer as ArrayBuffer;
this.parse(array);

// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { token, label, sensitive, ...keyAlg } = algorithm; // remove custom attrs for key
this.publicKey = await this.getData().publicKey.export(keyAlg, keyUsages, this.crypto as globalThis.Crypto) as CryptoKey;

Expand Down
3 changes: 2 additions & 1 deletion src/certs/x509.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class X509Certificate extends CryptoCertificate implements core.CryptoX50
public get subjectName(): string {
return this.getData().subject;
}
public override type: "x509" = "x509";
public override type = "x509" as const;

public get value(): ArrayBuffer {
Pkcs11Object.assertStorage(this.p11Object);
Expand All @@ -53,6 +53,7 @@ export class X509Certificate extends CryptoCertificate implements core.CryptoX50
const array = new Uint8Array(data);
this.parse(array.buffer as ArrayBuffer);

// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { token, label, sensitive, ...keyAlg } = algorithm; // remove custom attrs for key
this.publicKey = await this.getData().publicKey.export(keyAlg, keyUsages, this.crypto) as CryptoKey;

Expand Down
1 change: 1 addition & 0 deletions src/key.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ export class CryptoKey<T extends Pkcs11KeyAlgorithm = Pkcs11KeyAlgorithm> extend
default:
throw new core.CryptoError(`Wrong incoming session object '${graphene.ObjectClass[key.class]}'`);
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { name, ...defaultAlg } = CryptoKey.defaultKeyAlgorithm();
this.algorithm = { ...alg, ...defaultAlg } as any;
this.id = CryptoKey.getID(key);
Expand Down
4 changes: 2 additions & 2 deletions src/key_storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export class KeyStorage implements core.CryptoKeyStorage {
public async getItem(key: string): Promise<CryptoKey>;
/** @deprecated Use getItem(index, algorithm, extractable, keyUsages) */
public async getItem(key: string, algorithm: Algorithm, usages: KeyUsage[]): Promise<CryptoKey>;
public async getItem(index: string, algorithm: core.ImportAlgorithms, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>
public async getItem(index: string, algorithm: core.ImportAlgorithms, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
public async getItem(key: string, ...args: any[]): Promise<CryptoKey> {
const subjectObject = this.getItemById(key);
if (subjectObject) {
Expand Down Expand Up @@ -169,7 +169,7 @@ export class KeyStorage implements core.CryptoKeyStorage {
attributes: {
token: true,
}
})
});
const obj = this.crypto.session.copy(p11Key.key, template);
return CryptoKey.getID(obj.toType<any>());
} else {
Expand Down
39 changes: 17 additions & 22 deletions src/mechs/aes/crypto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export class AesCrypto implements types.IContainer {
public async exportKey(format: string, key: AesCryptoKey): Promise<JsonWebKey | ArrayBuffer> {
const template = key.key.getAttribute({ value: null, valueLen: null });
switch (format.toLowerCase()) {
case "jwk":
case "jwk": {
const aes: string = /AES-(\w+)/.exec(key.algorithm.name!)![1];
const jwk: JsonWebKey = {
kty: "oct",
Expand All @@ -78,6 +78,7 @@ export class AesCrypto implements types.IContainer {
key_ops: key.usages,
};
return jwk;
}
case "raw":
return new Uint8Array(template.value!).buffer;
break;
Expand All @@ -88,28 +89,22 @@ export class AesCrypto implements types.IContainer {

public async importKey(format: string, keyData: JsonWebKey | ArrayBuffer, algorithm: types.Pkcs11KeyImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey> {
// get key value
let value: ArrayBuffer;
const formatLower = format.toLowerCase();
if (formatLower !== "jwk" && formatLower !== "raw") {
throw new core.OperationError("format: Must be 'jwk' or 'raw'");
}

switch (format.toLowerCase()) {
case "jwk":
const jwk = keyData as JsonWebKey;
if (!jwk.k) {
throw new core.OperationError("jwk.k: Cannot get required property");
}
keyData = pvtsutils.Convert.FromBase64Url(jwk.k);
case "raw":
value = keyData as ArrayBuffer;
switch (value.byteLength) {
case 16:
case 24:
case 32:
break;
default:
throw new core.OperationError("keyData: Is wrong key length");
}
break;
default:
throw new core.OperationError("format: Must be 'jwk' or 'raw'");
if (formatLower === "jwk") {
const jwk = keyData as JsonWebKey;
if (!jwk.k) {
throw new core.OperationError("jwk.k: Cannot get required property");
}
keyData = pvtsutils.Convert.FromBase64Url(jwk.k);
}

const value = keyData as ArrayBuffer;
if (value.byteLength !== 16 && value.byteLength !== 24 && value.byteLength !== 32) {
throw new core.OperationError("keyData: Is wrong key length");
}

// prepare key algorithm
Expand Down
2 changes: 1 addition & 1 deletion src/mechs/ec/crypto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ export class EcCrypto implements types.IContainer {
});

// Set EC public key attributes
template.paramsEC = Buffer.from(namedCurve.raw);;
template.paramsEC = Buffer.from(namedCurve.raw);
let pointEc: Buffer;
if (namedCurve.name === "curve25519") {
pointEc = utils.b64UrlDecode(jwk.x!);
Expand Down
2 changes: 1 addition & 1 deletion src/mechs/ec/ec_dsa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ export class EcdsaProvider extends core.EcdsaProvider implements types.IContaine
}
}

protected wc2pk11(alg: EcdsaParams, keyAlg: KeyAlgorithm): { name: string, params: null; } {
protected wc2pk11(alg: EcdsaParams, _keyAlg: KeyAlgorithm): { name: string, params: null; } {
let algName: string;
const hashAlg = (alg.hash as Algorithm).name.toUpperCase();
switch (hashAlg) {
Expand Down
11 changes: 8 additions & 3 deletions src/mechs/hmac/hmac.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,19 @@ export class HmacProvider extends core.HmacProvider implements types.IContainer
let value: ArrayBuffer;

switch (format.toLowerCase()) {
case "jwk":
case "jwk": {
const jwk = keyData as JsonWebKey;
if (!jwk.k) {
throw new core.OperationError("jwk.k: Cannot get required property");
}
keyData = pvtsutils.Convert.FromBase64Url(jwk.k);
case "raw":
value = keyData;
break;
}
case "raw": {
value = keyData as ArrayBuffer;
break;
}
default:
throw new core.OperationError("format: Must be 'jwk' or 'raw'");
}
Expand Down Expand Up @@ -121,7 +125,7 @@ export class HmacProvider extends core.HmacProvider implements types.IContainer
public async onExportKey(format: KeyFormat, key: HmacCryptoKey): Promise<JsonWebKey | ArrayBuffer> {
const template = key.key.getAttribute({ value: null });
switch (format.toLowerCase()) {
case "jwk":
case "jwk": {
const jwk: JsonWebKey = {
kty: "oct",
k: pvtsutils.Convert.ToBase64Url(template.value!),
Expand All @@ -130,6 +134,7 @@ export class HmacProvider extends core.HmacProvider implements types.IContainer
key_ops: key.usages,
};
return jwk;
}
case "raw":
return new Uint8Array(template.value!).buffer;
break;
Expand Down
6 changes: 4 additions & 2 deletions src/mechs/rsa/crypto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,14 @@ export class RsaCrypto implements types.IContainer {

public async importKey(format: KeyFormat, keyData: JsonWebKey | ArrayBuffer, algorithm: RsaHashedImportParams, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey> {
switch (format.toLowerCase()) {
case "jwk":
case "jwk": {
const jwk: any = keyData;
if (jwk.d) {
return this.importJwkPrivateKey(jwk, algorithm as RsaHashedKeyGenParams, extractable, keyUsages);
} else {
return this.importJwkPublicKey(jwk, algorithm as RsaHashedKeyGenParams, extractable, keyUsages);
}
}
case "spki": {
const raw = new Uint8Array(keyData as Uint8Array).buffer as ArrayBuffer;
const jwk = this.spki2jwk(raw);
Expand Down Expand Up @@ -163,9 +164,10 @@ export class RsaCrypto implements types.IContainer {

protected jwkAlgName(algorithm: RsaHashedKeyAlgorithm): string {
switch (algorithm.name.toUpperCase()) {
case "RSA-OAEP":
case "RSA-OAEP": {
const mdSize = /(\d+)$/.exec(algorithm.hash.name)![1];
return `RSA-OAEP${mdSize !== "1" ? `-${mdSize}` : ""}`;
}
case "RSASSA-PKCS1-V1_5":
return `RS${/(\d+)$/.exec(algorithm.hash.name)![1]}`;
case "RSA-PSS":
Expand Down
Loading

0 comments on commit 332c79f

Please sign in to comment.