1
- import { serialize , type , validate } from "@js-soft/ts-serval" ;
1
+ import { SerializableAsync , serialize , type , validate } from "@js-soft/ts-serval" ;
2
2
import { KeyPairHandle , KeyPairSpec , Provider } from "@nmshd/rs-crypto-types" ;
3
3
import { CryptoError } from "../CryptoError" ;
4
4
import { CryptoErrorCode } from "../CryptoErrorCode" ;
5
- import { CryptoSerializable } from "../CryptoSerializable" ;
5
+ import { CryptoSerializableAsync } from "../CryptoSerializable" ;
6
6
import { getProvider } from "./CryptoLayerProviders" ;
7
7
8
8
@type ( "CryptoAsymmetricKeyHandle" )
9
- export class CryptoAsymmetricKeyHandle extends CryptoSerializable {
9
+ export class CryptoAsymmetricKeyHandle extends CryptoSerializableAsync {
10
10
@validate ( )
11
11
@serialize ( )
12
12
public spec : KeyPairSpec ;
@@ -23,12 +23,15 @@ export class CryptoAsymmetricKeyHandle extends CryptoSerializable {
23
23
24
24
public keyPairHandle : KeyPairHandle ;
25
25
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 ) ;
28
28
}
29
29
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 } ) ;
32
35
if ( ! provider ) {
33
36
throw new CryptoError (
34
37
CryptoErrorCode . CalFailedLoadingProvider ,
0 commit comments