PrivateKey
A P-256 private key used for key agreement.
- iOS
- 13+
- macOS
- 10.15+
- tvOS
- 13+
- watchOS
- 6+
struct PrivateKey
A P-256 private key used for key agreement.
struct PrivateKey
import Crypto
A cryptography library for Swift.
enum KeyAgreement
A mechanism used to create a shared secret between two users by performing NIST P-256 elliptic curve Diffie Hellman (ECDH) key exchange.
enum P256
An elliptic curve that enables NIST P-256 signatures and key agreement.
struct PublicKey
A P-256 public key used for key agreement.
protocol Copyable
A type whose values can be implicitly or explicitly copied.
protocol DiffieHellmanKeyAgreement
A Diffie-Hellman Key Agreement Key
protocol Escapable
protocol HPKEDiffieHellmanPrivateKey : DiffieHellmanKeyAgreement where Self.PublicKey : HPKEDiffieHellmanPublicKey
A type that represents the private key in a Diffie-Hellman key exchange.
protocol HPKEDiffieHellmanPrivateKeyGeneration : HPKEDiffieHellmanPrivateKey
A type that represents the generation of private keys in a Diffie-Hellman key exchange.
init()
Creates a NIST P-256 elliptic curve private key for use with Diffie-Hellman key exchange.
init(compactRepresentable: Bool = true)
Creates a random P-256 private key for key agreement.
init<Bytes>(derRepresentation: Bytes) throws where Bytes : RandomAccessCollection, Bytes.Element == UInt8
Creates a P-256 private key for key agreement from a Distinguished Encoding Rules (DER) encoded representation.
init(pemRepresentation: String) throws
Creates a P-256 private key for key agreement from a Privacy-Enhanced Mail PEM) representation.
init<Bytes>(rawRepresentation: Bytes) throws where Bytes : ContiguousBytes
Creates a P-256 private key for key agreement from a collection of bytes.
init<Bytes>(x963Representation: Bytes) throws where Bytes : ContiguousBytes
Creates a P-256 private key for key agreement from an ANSI x9.63 representation.
var derRepresentation: Data { get }
A Distinguished Encoding Rules (DER) encoded representation of the private key.
var pemRepresentation: String { get }
A Privacy-Enhanced Mail (PEM) representation of the private key.
var publicKey: P256.KeyAgreement.PublicKey { get }
The corresponding public key.
var rawRepresentation: Data { get }
A data representation of the private key.
var x963Representation: Data { get }
An ANSI x9.63 representation of the private key.
func sharedSecretFromKeyAgreement(with publicKeyShare: P256.KeyAgreement.PublicKey) throws -> SharedSecret
Computes a shared secret with the provided public key from another party.