V0.6.9 Arroyo Toad

Added support for P256 Curve and suppressed support for P521 Curve that will be reimplemented later
This commit is contained in:
Christian Risi
2024-12-07 17:58:38 +00:00
parent f3bc5f32e2
commit 711ad7b5c8
9 changed files with 109 additions and 47 deletions

View File

@@ -8,6 +8,11 @@ import Foundation
public func signP521(object: Data, key: P521.Signing.PrivateKey)throws -> Data {
return try key.signature<Data>(for: object).rawRepresentation
}
public func signP256(object: Data, key: P256.Signing.PrivateKey)throws -> Data {
return try key.signature<Data>(for: object).rawRepresentation
}
/*
public func sign<T>(object: T, key: P521.Signing.PrivateKey) throws -> String {
@@ -35,24 +40,59 @@ public func verifySignatureP521(signature: Data, object: Data, key: P521.Signing
return key.isValidSignature<Data>(ecdsa, for: object)
}
public func verifySignatureP256(signature: Data, object: Data, key: P256.Signing.PublicKey) throws -> Bool {
let ecdsa: P256.Signing.ECDSASignature
do {
ecdsa = try P256.Signing.ECDSASignature(rawRepresentation: signature)
} catch {
throw SecurityError.NotDecodableError
}
return key.isValidSignature<Data>(ecdsa, for: object)
}
// ------------------
// --- PEM 2 Key ----
// ------------------
public func pem2key(filePath: String) throws -> P521.Signing.PrivateKey {
// -------------------
// --- PEM 2 Key 521 -
// -------------------
public func pem2_P521key(filePath: String) throws -> P521.Signing.PrivateKey {
let pemURL: URL = URL(filePath: filePath)
return try pem2key(filePem: pemURL)
return try pem2_P521key(filePem: pemURL)
}
public func pem2key(filePem: URL) throws -> P521.Signing.PrivateKey {
public func pem2_P521key(filePem: URL) throws -> P521.Signing.PrivateKey {
let fileString: String = try String(contentsOf: filePem, encoding: String.Encoding.utf8)
return try pem2key(pemString: fileString)
return try pem2_P521key(pemString: fileString)
}
public func pem2key(pemString: String) throws -> P521.Signing.PrivateKey {
public func pem2_P521key(pemString: String) throws -> P521.Signing.PrivateKey {
return try P521.Signing.PrivateKey(pemRepresentation: pemString)
}
// -------------------
// --- PEM 2 Key 256 -
// -------------------
public func pem2_P256key(filePath: String) throws -> P256.Signing.PrivateKey {
let pemURL: URL = URL(filePath: filePath)
return try pem2_P256key(filePem: pemURL)
}
public func pem2_P256key(filePem: URL) throws -> P256.Signing.PrivateKey {
let fileString: String = try String(contentsOf: filePem, encoding: String.Encoding.utf8)
return try pem2_P256key(pemString: fileString)
}
public func pem2_P256key(pemString: String) throws -> P256.Signing.PrivateKey {
return try P256.Signing.PrivateKey(pemRepresentation: pemString)
}

View File

@@ -0,0 +1,9 @@
import Crypto
public protocol PublicSignKeyP {
}
public protocol PrivateSignKeyP {
}