/*
* Copyright (c) Huawei Technologies Co., Ltd. 2022-2024. All rights reserved.
*/
package jwt4cj
public class ECDSAKeyProviderFileImpl <: ECDSAKeyProvider<ECDSAPublicKey, ECDSAPrivateKey> {
private var ecPublicKey: ?ECDSAPublicKey
private var ecPrivateKey: ?ECDSAPrivateKey
public init(filePath: String) {
this(filePath, filePath, None)
}
public init(privateKeyFile: ?String, publicKeyFile: ?String) {
this(privateKeyFile, publicKeyFile, None)
}
public init(privateKeyFile: ?String, publicKeyFile: ?String, pwd: ?String) {
this.ecPublicKey = try {
let textpub = String.fromUtf8(File.readFrom(publicKeyFile.getOrThrow()))
ECDSAPublicKey.decodeFromPem(textpub)
} catch (_) {
None
}
this.ecPrivateKey = try {
let textpri = String.fromUtf8(File.readFrom(privateKeyFile.getOrThrow()))
ECDSAPrivateKey.decodeFromPem(textpri, password: pwd)
} catch (_) {
None
}
}
public func getPublicKey(): ECDSAPublicKey {
return ecPublicKey.getOrThrow()
}
public func getPrivateKey(): ECDSAPrivateKey {
return ecPrivateKey.getOrThrow()
}
}
public class ECDSAKeyProviderImpl <: ECDSAKeyProvider<ECDSAPublicKey, ECDSAPrivateKey> {
private var ecPublicKey: ?ECDSAPublicKey
private var ecPrivateKey: ?ECDSAPrivateKey
public init(privateKey: ?ECDSAPrivateKey, publicKey: ?ECDSAPublicKey) {
this.ecPublicKey = publicKey
this.ecPrivateKey = privateKey
}
public func getPublicKey(): ECDSAPublicKey {
return ecPublicKey.getOrThrow()
}
public func getPrivateKey(): ECDSAPrivateKey {
return ecPrivateKey.getOrThrow()
}
}