function buildMessageHeader()

in modules/serialize/src/serialize_factory.ts [246:292]


  function buildMessageHeader({
    encryptionContext,
    encryptedDataKeys,
    suite,
    messageId,
    frameLength,
    suiteData,
  }: {
    encryptionContext: Readonly<EncryptionContext>
    encryptedDataKeys: ReadonlyArray<EncryptedDataKey>
    suite: AlgorithmSuite
    messageId: Uint8Array
    frameLength: number
    suiteData?: Uint8Array
  }): MessageHeader {
    const { messageFormat: version, id: suiteId } = suite
    const contentType = ContentType.FRAMED_DATA

    if (version === MessageFormat.V1) {
      const type = ObjectType.CUSTOMER_AE_DATA
      const { ivLength: headerIvLength } = suite
      return {
        version,
        type,
        suiteId,
        messageId,
        encryptionContext,
        encryptedDataKeys,
        contentType,
        headerIvLength,
        frameLength,
      } as MessageHeaderV1
    } else if (version === MessageFormat.V2) {
      return {
        version,
        suiteId,
        messageId,
        encryptionContext: encryptionContext,
        encryptedDataKeys: encryptedDataKeys,
        contentType,
        frameLength,
        suiteData,
      } as MessageHeaderV2
    }

    needs(false, 'Unsupported message format version.')
  }