Structure
Data
@frozen struct Data
A byte buffer in memory
Methods
sealAES(recipientPublicKey:salt:)
public func sealAES(recipientPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Data?
Encrypts current data using AES.GCM cipher.
Parameters
Name | Type | Description |
---|---|---|
recipientPublicKey | P256.KeyAgreement.PublicKey |
Recipient public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Combined AES Selead box (nonce || ciphertext || tag). If there's a problem encrypting, nil
is retuned.
openAES(senderPublicKey:salt:)
public func openAES(senderPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Data?
Decrypts current combined AES Selead box data (nonce || ciphertext || tag) using AES.GCM cipher.
Parameters
Name | Type | Description |
---|---|---|
senderPublicKey | P256.KeyAgreement.PublicKey |
Sender public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Decrypts the message and verifies its authenticity using AES.GCM. If there's a problem decrypting, nil
is retuned.
sealChaChaPoly(recipientPublicKey:salt:)
public func sealChaChaPoly(recipientPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Data?
Encrypts current data using ChaChaPoly cipher.
Parameters
Name | Type | Description |
---|---|---|
recipientPublicKey | P256.KeyAgreement.PublicKey |
Recipient public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Combined ChaChaPoly Selead box (nonce || ciphertext || tag). If there's a problem encrypting, nil
is retuned.
openChaChaPoly(senderPublicKey:salt:)
public func openChaChaPoly(senderPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Data?
Decrypts current combined ChaChaPoly Selead box data (nonce || ciphertext || tag) using ChaChaPoly cipher.
Parameters
Name | Type | Description |
---|---|---|
senderPublicKey | P256.KeyAgreement.PublicKey |
Sender public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Decrypts the message and verifies its authenticity using ChaChaPoly. If there's a problem decrypting, nil
is retuned.
authenticationCodeHMAC(recipientPublicKey:salt:)
public func authenticationCodeHMAC(recipientPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Data?
Computes a message authentication code for the given data using HMAC from current data.
Parameters
Name | Type | Description |
---|---|---|
recipientPublicKey | P256.KeyAgreement.PublicKey |
Recipient public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Message authentication code. If there's a problem computing, nil
is retuned.
isValidAuthenticationCodeHMAC(authenticationCode:senderPublicKey:salt:)
public func isValidAuthenticationCodeHMAC(authenticationCode: Data, senderPublicKey: P256.KeyAgreement.PublicKey, salt: Data) -> Bool
Returns a Boolean indicating whether the given code is valid for current data using HMAC.
Parameters
Name | Type | Description |
---|---|---|
authenticationCode | Data |
authentication code to validate. |
senderPublicKey | P256.KeyAgreement.PublicKey |
Sender public key. |
salt | Data |
The salt to use for key derivation. |
Returns
Boolean indicating whether the given code is valid for current data. If there's a problem validating, false
is retuned.