category
authenticated_channel
Identity-authenticated ephemeral X25519 channels with directional XChaCha20-Poly1305 keys, strict counters, and per-message symmetric key ratcheting.
logtalk_load(crypto(loader))staticPublic predicates
authenticated_channel_initiate/4
Creates a signed ephemeral-key Offer and PendingState for an initiator using IdentitySeed and the pinned ResponderIdentityPublicKey.
staticauthenticated_channel_initiate(IdentitySeed,ResponderIdentityPublicKey,Offer,PendingState)authenticated_channel_initiate(+list(byte),+list(byte),-compound,-compound) - one_or_errorIdentitySeed is a partial list or a list with an element which is a variable:instantiation_errorIdentitySeed is neither a variable nor a list of 32 bytes:type_error(list(byte,32),IdentitySeed)IdentitySeed contains a non-integer byte:type_error(integer,Byte)IdentitySeed contains an integer outside the byte range:domain_error(byte,Byte)ResponderIdentityPublicKey is a partial list or a list with an element which is a variable:instantiation_errorResponderIdentityPublicKey is neither a variable nor a list of 32 bytes:type_error(list(byte,32),ResponderIdentityPublicKey)ResponderIdentityPublicKey contains a non-integer byte:type_error(integer,Byte)ResponderIdentityPublicKey contains an integer outside the byte range:domain_error(byte,Byte)authenticated_channel_accept/5
Verifies Offer against the pinned InitiatorIdentityPublicKey, creates a signed Response, and returns the responder Channel state.
staticauthenticated_channel_accept(IdentitySeed,InitiatorIdentityPublicKey,Offer,Response,Channel)authenticated_channel_accept(+list(byte),+list(byte),+compound,-compound,-compound) - zero_or_one_or_errorIdentitySeed is a partial list or a list with an element which is a variable:instantiation_errorIdentitySeed is neither a variable nor a list of 32 bytes:type_error(list(byte,32),IdentitySeed)IdentitySeed contains a non-integer byte:type_error(integer,Byte)IdentitySeed contains an integer outside the byte range:domain_error(byte,Byte)InitiatorIdentityPublicKey is a partial list or a list with an element which is a variable:instantiation_errorInitiatorIdentityPublicKey is neither a variable nor a list of 32 bytes:type_error(list(byte,32),InitiatorIdentityPublicKey)InitiatorIdentityPublicKey contains a non-integer byte:type_error(integer,Byte)InitiatorIdentityPublicKey contains an integer outside the byte range:domain_error(byte,Byte)Offer is a variable or contains a partial byte list or a byte list with an element which is a variable:instantiation_errorOffer is neither a variable nor a compound term:type_error(compound,Offer)Offer is not a valid authenticated channel offer term:domain_error(authenticated_channel_offer,Offer)Offer contains a key field which is not a list of 32 bytes:type_error(list(byte,32),Bytes)Offer contains a signature field which is not a list of 64 bytes:type_error(list(byte,64),Signature)Offer contains a non-integer byte:type_error(integer,Byte)Offer contains an integer outside the byte range:domain_error(byte,Byte)authenticated_channel_finalize/3
Verifies Response against the identity pinned in PendingState and returns the initiator Channel state.
staticauthenticated_channel_finalize(PendingState,Response,Channel)authenticated_channel_finalize(+compound,+compound,-compound) - zero_or_one_or_errorPendingState is a variable or contains a partial byte list or a byte list with an element which is a variable:instantiation_errorPendingState is neither a variable nor a compound term:type_error(compound,PendingState)PendingState is not a valid authenticated channel pending-state term:domain_error(authenticated_channel_pending_state,PendingState)PendingState contains a key field which is not a list of 32 bytes:type_error(list(byte,32),Bytes)PendingState contains a signature field which is not a list of 64 bytes:type_error(list(byte,64),Signature)PendingState contains a non-integer byte:type_error(integer,Byte)PendingState contains an integer outside the byte range:domain_error(byte,Byte)Response is a variable or contains a partial byte list or a byte list with an element which is a variable:instantiation_errorResponse is neither a variable nor a compound term:type_error(compound,Response)Response is not a valid authenticated channel response term:domain_error(authenticated_channel_response,Response)Response contains a key field which is not a list of 32 bytes:type_error(list(byte,32),Bytes)Response contains a signature field which is not a list of 64 bytes:type_error(list(byte,64),Signature)Response contains a non-integer byte:type_error(integer,Byte)Response contains an integer outside the byte range:domain_error(byte,Byte)authenticated_channel_encrypt/5
Encrypts and authenticates Plaintext and returns Message and the replacement Channel state. The caller must discard the input state.
staticauthenticated_channel_encrypt(Channel0,AAD,Plaintext,Message,Channel)authenticated_channel_encrypt(+compound,+list(byte),+list(byte),-compound,-compound) - one_or_errorChannel0 is a variable or contains a partial byte list, a byte list with an element which is a variable, or a variable counter:instantiation_errorChannel0 is neither a variable nor a compound term:type_error(compound,Channel0)Channel0 is not a valid authenticated channel state term:domain_error(authenticated_channel_state,Channel0)Channel0 contains a hash or key field which is not a list of 32 bytes:type_error(list(byte,32),Bytes)Channel0 contains a nonce-prefix field which is not a list of 16 bytes:type_error(list(byte,16),Bytes)Channel0 contains a non-integer byte:type_error(integer,Byte)Channel0 contains an integer outside the byte range:domain_error(byte,Byte)Channel0 contains a counter which is not an integer:type_error(integer,Counter)Channel0 contains a negative counter:domain_error(non_negative_integer,Counter)AAD is a partial list or a list with an element which is a variable:instantiation_errorAAD is neither a variable nor a list of bytes:type_error(list(byte),AAD)AAD contains a non-integer byte:type_error(integer,Byte)AAD contains an integer outside the byte range:domain_error(byte,Byte)Plaintext is a partial list or a list with an element which is a variable:instantiation_errorPlaintext is neither a variable nor a list of bytes:type_error(list(byte),Plaintext)Plaintext contains a non-integer byte:type_error(integer,Byte)Plaintext contains an integer outside the byte range:domain_error(byte,Byte)Channel0 send counter is exhausted:resource_error(authenticated_channel_counter)authenticated_channel_decrypt/5
Authenticates and decrypts the next strictly ordered Message and returns Plaintext and the replacement Channel state. The caller must discard the input state.
staticauthenticated_channel_decrypt(Channel0,AAD,Message,Plaintext,Channel)authenticated_channel_decrypt(+compound,+list(byte),+compound,-list(byte),-compound) - zero_or_one_or_errorChannel0 is a variable or contains a partial byte list, a byte list with an element which is a variable, or a variable counter:instantiation_errorChannel0 is neither a variable nor a compound term:type_error(compound,Channel0)Channel0 is not a valid authenticated channel state term:domain_error(authenticated_channel_state,Channel0)Channel0 contains a hash or key field which is not a list of 32 bytes:type_error(list(byte,32),Bytes)Channel0 contains a nonce-prefix field which is not a list of 16 bytes:type_error(list(byte,16),Bytes)Channel0 contains a non-integer byte:type_error(integer,Byte)Channel0 contains an integer outside the byte range:domain_error(byte,Byte)Channel0 contains a counter which is not an integer:type_error(integer,Counter)Channel0 contains a negative counter:domain_error(non_negative_integer,Counter)AAD is a partial list or a list with an element which is a variable:instantiation_errorAAD is neither a variable nor a list of bytes:type_error(list(byte),AAD)AAD contains a non-integer byte:type_error(integer,Byte)AAD contains an integer outside the byte range:domain_error(byte,Byte)Message is a variable or contains a partial byte list, a byte list with an element which is a variable, or a variable counter:instantiation_errorMessage is neither a variable nor a compound term:type_error(compound,Message)Message is not a valid authenticated channel message term:domain_error(authenticated_channel_message,Message)Message counter is not an integer:type_error(integer,Counter)Message counter is negative:domain_error(non_negative_integer,Counter)Message ciphertext and tag is not a list of bytes:type_error(list(byte),CiphertextAndTag)Message ciphertext and tag contains a non-integer byte:type_error(integer,Byte)Message ciphertext and tag contains an integer outside the byte range:domain_error(byte,Byte)Message ciphertext and tag is shorter than 16 bytes:domain_error(minimum_byte_length(16),CiphertextAndTag)Channel0 receive counter is exhausted:resource_error(authenticated_channel_counter)Protected predicates
(no local declarations; see entity ancestors if any)
Private predicates
(no local declarations; see entity ancestors if any)
Operators
(none)