Contents

init(keyType:cipherSuite:version:key:supportedTransports:identifier:)

Initializes a security message with key material and metadata.

Declaration

init(keyType: SecurityMessage.KeyType, cipherSuite: SecurityMessage.CipherSuite, version: SecurityMessage.CipherSuite.Version, key: Data, supportedTransports: [AccessoryTransport] = [.bluetooth], identifier: String? = nil)

Parameters

  • keyType:

    The type of key carried by this message.

  • cipherSuite:

    The cryptographic cipher suite to use for key exchange.

  • version:

    The cipher suite protocol version.

  • key:

    The key data to send.

  • supportedTransports:

    The transports the accessory supports for sending sensitive information. The default is Bluetooth only.

  • identifier:

    An optional Bluetooth identifier for deriving HPKE keys.

Discussion

When initiating key exchange from your accessory, create a message with SecurityMessage.KeyType.publicKey and your accessory’s public key. The system responds with a message containing SecurityMessage.KeyType.encapsulatedKey.