public function build(): JWE
    {
        if (null === $this->payload) {
            throw new \LogicException('Payload not set.');
        }
        if (0 === \count($this->recipients)) {
            throw new \LogicException('No recipient.');
        }

        $additionalHeader = [];
        $cek = $this->determineCEK($additionalHeader);

        $recipients = [];
        foreach ($this->recipients as $recipient) {
            $recipient = $this->processRecipient($recipient, $cek, $additionalHeader);
            $recipients[] = $recipient;
        }

        if (!empty($additionalHeader) && 1 === \count($this->recipients)) {
            $sharedProtectedHeader = \array_merge($additionalHeader, $this->sharedProtectedHeader);
        } else {
            $sharedProtectedHeader = $this->sharedProtectedHeader;
        }
        $encodedSharedProtectedHeader = empty($sharedProtectedHeader) ? '' : Base64Url::encode($this->jsonConverter->encode($sharedProtectedHeader));

        list($ciphertext, $iv, $tag) = $this->encryptJWE($cek, $encodedSharedProtectedHeader);

        return JWE::create($ciphertext, $iv, $tag, $this->aad, $this->sharedHeader, $sharedProtectedHeader, $encodedSharedProtectedHeader, $recipients);
    }
public function build(): JWE
    {
        if (null === $this->payload) {
            throw new \LogicException('Payload not set.');
        }
        if (0 === \count($this->recipients)) {
            throw new \LogicException('No recipient.');
        }

        $additionalHeader = [];
        $cek = $this->determineCEK($additionalHeader);

        $recipients = [];
        foreach ($this->recipients as $recipient) {
            $recipient = $this->processRecipient($recipient, $cek, $additionalHeader);
            $recipients[] = $recipient;
        }

        if (!empty($additionalHeader) && 1 === \count($this->recipients)) {
            $sharedProtectedHeader = \array_merge($additionalHeader, $this->sharedProtectedHeader);
        } else {
            $sharedProtectedHeader = $this->sharedProtectedHeader;
        }
        $encodedSharedProtectedHeader = empty($sharedProtectedHeader) ? '' : Base64Url::encode($this->jsonConverter->encode($sharedProtectedHeader));

        list($ciphertext, $iv, $tag) = $this->encryptJWE($cek, $encodedSharedProtectedHeader);

        return JWE::create($ciphertext, $iv, $tag, $this->aad, $this->sharedHeader, $sharedProtectedHeader, $encodedSharedProtectedHeader, $recipients);
    }
public function build ( ) : JWE { if ( null === $ this -> payload ) { throw new \ LogicException ( 'Payload not set.' ) ; } if ( 0 === \ count ( $ this -> recipients ) ) { throw new \ LogicException ( 'No recipient.' ) ; } $ additionalHeader = [ ] ; $ cek = $ this -> determineCEK ( $ additionalHeader ) ; $ recipients = [ ] ; foreach ( $ this -> recipients as $ recipient ) { $ recipient = $ this -> processRecipient ( $ recipient , $ cek , $ additionalHeader ) ; $ recipients [ ] = $ recipient ; } if ( ! empty ( $ additionalHeader ) && 1 === \ count ( $ this -> recipients ) ) { $ sharedProtectedHeader = \ array_merge ( $ additionalHeader , $ this -> sharedProtectedHeader ) ; } else { $ sharedProtectedHeader = $ this -> sharedProtectedHeader ; } $ encodedSharedProtectedHeader = empty ( $ sharedProtectedHeader ) ? '' : Base64Url :: encode ( $ this -> jsonConverter -> encode ( $ sharedProtectedHeader ) ) ; list ( $ ciphertext , $ iv , $ tag ) = $ this -> encryptJWE ( $ cek , $ encodedSharedProtectedHeader ) ; return JWE :: create ( $ ciphertext , $ iv , $ tag , $ this -> aad , $ this -> sharedHeader , $ sharedProtectedHeader , $ encodedSharedProtectedHeader , $ recipients ) ; }
Builds the JWE.
Builds the JWE .