Skip to content

Commit e2daf27

Browse files
committed
fix: failing compilation with tsc
1 parent 79cd9ba commit e2daf27

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

src/CryptoSerializable.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ISerializable, Serializable } from "@js-soft/ts-serval";
1+
import { ISerializable, Serializable, SerializableAsync } from "@js-soft/ts-serval";
22
import { CoreBuffer } from "./CoreBuffer";
33

44
export abstract class CryptoSerializable extends Serializable implements ISerializable {
@@ -10,3 +10,13 @@ export abstract class CryptoSerializable extends Serializable implements ISerial
1010
return CoreBuffer.utf8_base64(this.serialize(verbose));
1111
}
1212
}
13+
14+
export abstract class CryptoSerializableAsync extends SerializableAsync implements ISerializable {
15+
public override serialize(verbose = true): string {
16+
return JSON.stringify(this.toJSON(verbose));
17+
}
18+
19+
public toBase64(verbose = true): string {
20+
return CoreBuffer.utf8_base64(this.serialize(verbose));
21+
}
22+
}

src/crypto-layer/CryptoAsymmetricKeyHandle.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { serialize, type, validate } from "@js-soft/ts-serval";
1+
import { SerializableAsync, serialize, type, validate } from "@js-soft/ts-serval";
22
import { KeyPairHandle, KeyPairSpec, Provider } from "@nmshd/rs-crypto-types";
33
import { CryptoError } from "../CryptoError";
44
import { CryptoErrorCode } from "../CryptoErrorCode";
5-
import { CryptoSerializable } from "../CryptoSerializable";
5+
import { CryptoSerializableAsync } from "../CryptoSerializable";
66
import { getProvider } from "./CryptoLayerProviders";
77

88
@type("CryptoAsymmetricKeyHandle")
9-
export class CryptoAsymmetricKeyHandle extends CryptoSerializable {
9+
export class CryptoAsymmetricKeyHandle extends CryptoSerializableAsync {
1010
@validate()
1111
@serialize()
1212
public spec: KeyPairSpec;
@@ -23,12 +23,15 @@ export class CryptoAsymmetricKeyHandle extends CryptoSerializable {
2323

2424
public keyPairHandle: KeyPairHandle;
2525

26-
public static from(value: any): CryptoAsymmetricKeyHandle {
27-
return this.fromAny(value);
26+
public static async from(value: any): Promise<CryptoAsymmetricKeyHandle> {
27+
return await this.fromAny(value);
2828
}
2929

30-
public static override async postFrom(value: CryptoAsymmetricKeyHandle): Promise<CryptoAsymmetricKeyHandle> {
31-
const provider = getProvider(value.providerName);
30+
public static override async postFrom<T extends SerializableAsync>(value: T): Promise<T> {
31+
if (!(value instanceof CryptoAsymmetricKeyHandle)) {
32+
throw new CryptoError(CryptoErrorCode.WrongParameters, `Expected 'CryptoAsymmetricKeyHandle'.`);
33+
}
34+
const provider = getProvider({ providerName: value.providerName });
3235
if (!provider) {
3336
throw new CryptoError(
3437
CryptoErrorCode.CalFailedLoadingProvider,

0 commit comments

Comments
 (0)