in Sources/NIOSSH/Keys And Signatures/NIOSSHPrivateKey.swift [89:120]
func sign<DigestBytes: Digest>(digest: DigestBytes) throws -> NIOSSHSignature {
switch self.backingKey {
case .ed25519(let key):
let signature = try digest.withUnsafeBytes { ptr in
try key.signature(for: ptr)
}
return NIOSSHSignature(backingSignature: .ed25519(.data(signature)))
case .ecdsaP256(let key):
let signature = try digest.withUnsafeBytes { ptr in
try key.signature(for: ptr)
}
return NIOSSHSignature(backingSignature: .ecdsaP256(signature))
case .ecdsaP384(let key):
let signature = try digest.withUnsafeBytes { ptr in
try key.signature(for: ptr)
}
return NIOSSHSignature(backingSignature: .ecdsaP384(signature))
case .ecdsaP521(let key):
let signature = try digest.withUnsafeBytes { ptr in
try key.signature(for: ptr)
}
return NIOSSHSignature(backingSignature: .ecdsaP521(signature))
#if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
case .secureEnclaveP256(let key):
let signature = try digest.withUnsafeBytes { ptr in
try key.signature(for: ptr)
}
return NIOSSHSignature(backingSignature: .ecdsaP256(signature))
#endif
}
}