BT4PT-EncryptedDataV1-0

BT4PT Encrypted Data - DRAFT.

Module Info

Reference
BT4PT-EncryptedDataV1-0
Numeric OID
1.3.6.1.4.1.17218.1.2.11.1.0

Assignments

EncryptedData

SEQUENCE

This sequence contains the following fields:

header
EncryptedDataHeader
ciphertext

The encrypted data. A new 128-bit Content Encryption Key SHALL be generated uniformly at random for every EncryptedData value and SHALL NOT be reused. The ciphertext uses AES-128-GCM encryption with a nonce of 12 null bytes and associated data being the CUPER encoding of EncryptedDataHeader. The value, after decryption SHALL be the CUPER encoding of InnerData.

OCTET STRING

EncryptedDataHeader

SEQUENCE

This sequence contains the following fields:

ephemeralPublicKey

An X25519 ephemeral public key.

OCTET STRING

This type is constrained in the following way:

Size

The length of the value must exactly: 32

recipients
SEQUENCE OF

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 32

Recipient

Recipient

SEQUENCE

This sequence contains the following fields:

key
RecipientKey
wrappedKey

The 128-bit Content Encryption Key, wrapped according to RFC 3394. The wrapping key is derived as follows:

  • let SK be the result of the X25519 exchange between the ephemeral key and the long term key identified by (securityProvider, keyId).
  • if SK is the all-zero 32-byte string, the key agreement SHALL be considered to have failed.
  • the wrapping key is the output of HKDF-SHA256(SK, length=32 bytes, salt=ephemeralPublicKey, info="BT4PT-EncryptedDataV1-0" || CUPER(RecipientKey))
OCTET STRING

This type is constrained in the following way:

Size

The length of the value must exactly: 24

RecipientKey

SEQUENCE

This sequence contains the following fields:

securityProvider
CompanyCode
keyId
INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 1

The value must be less than or equal to: 65536

InnerData

SEQUENCE OF

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 16

Data

This type is concretely parameterised with the following:

ElementSet
EncryptedDataElements

This type is constrained in the following way:

Fields

The type must satisfy the following field constraints, other fields are unconstrained:

Field Presence Value
format No stipulation

Inverse

Any value, except any satisfying the following:

Union

Any of the following can be true:

Single value

The value must be exactly: !I

OR

Single value

The value must be exactly: !C

OR

Single value

The value must be exactly: !P

EncryptedDataElements

OBJECT SET

This object set has the following members:

&id &Type &encoding &Constraints
LUG1 LuggageTag cuperEncoding NULL
Other members may be added at runtime.