2022-02-14 19:05:24 +07:00
|
|
|
import { CryptoProvider } from "./provider.crypto"
|
2022-02-14 12:30:32 +07:00
|
|
|
|
2022-02-14 19:05:24 +07:00
|
|
|
export class Crypto {
|
|
|
|
constructor(private readonly provider: CryptoProvider) {}
|
2022-02-14 12:30:32 +07:00
|
|
|
|
|
|
|
public encrypt(data: string | Buffer): string {
|
|
|
|
return this.provider.encrypt(data)
|
|
|
|
}
|
|
|
|
|
|
|
|
public decrypt(data: string): string {
|
|
|
|
return this.provider.decrypt(data)
|
|
|
|
}
|
|
|
|
|
2022-02-14 19:05:24 +07:00
|
|
|
private static _instance: Crypto | null | undefined
|
|
|
|
public static newInstance(provider: CryptoProvider): Crypto {
|
|
|
|
if (!Crypto._instance) {
|
|
|
|
Crypto._instance = new Crypto(provider)
|
2022-02-14 12:30:32 +07:00
|
|
|
}
|
2022-02-14 19:05:24 +07:00
|
|
|
return Crypto._instance
|
2022-02-14 12:30:32 +07:00
|
|
|
}
|
|
|
|
}
|