55 */
66
77import { encode as b64u } from '../../util/base64url.js'
8- import { unprotected } from '../../lib/private_symbols .js'
9- import { encrypt } from '../../lib/encrypt .js'
8+ import { unprotected , assertNotSet } from '../../lib/helpers .js'
9+ import { encrypt } from '../../lib/content_encryption .js'
1010import type * as types from '../../types.d.ts'
11- import { encryptKeyManagement } from '../../lib/encrypt_key_management .js'
11+ import { encryptKeyManagement } from '../../lib/key_management .js'
1212import { JOSENotSupported , JWEInvalid } from '../../util/errors.js'
13- import { isDisjoint } from '../../lib/is_disjoint .js'
13+ import { isDisjoint } from '../../lib/type_checks .js'
1414import { concat , encode } from '../../lib/buffer_utils.js'
1515import { validateCrit } from '../../lib/validate_crit.js'
1616import { normalizeKey } from '../../lib/normalize_key.js'
@@ -74,9 +74,7 @@ export class FlattenedEncrypt {
7474 * @param parameters JWE Key Management parameters.
7575 */
7676 setKeyManagementParameters ( parameters : types . JWEKeyManagementHeaderParameters ) : this {
77- if ( this . #keyManagementParameters) {
78- throw new TypeError ( 'setKeyManagementParameters can only be called once' )
79- }
77+ assertNotSet ( this . #keyManagementParameters, 'setKeyManagementParameters' )
8078 this . #keyManagementParameters = parameters
8179 return this
8280 }
@@ -87,9 +85,7 @@ export class FlattenedEncrypt {
8785 * @param protectedHeader JWE Protected Header.
8886 */
8987 setProtectedHeader ( protectedHeader : types . JWEHeaderParameters ) : this {
90- if ( this . #protectedHeader) {
91- throw new TypeError ( 'setProtectedHeader can only be called once' )
92- }
88+ assertNotSet ( this . #protectedHeader, 'setProtectedHeader' )
9389 this . #protectedHeader = protectedHeader
9490 return this
9591 }
@@ -100,9 +96,7 @@ export class FlattenedEncrypt {
10096 * @param sharedUnprotectedHeader JWE Shared Unprotected Header.
10197 */
10298 setSharedUnprotectedHeader ( sharedUnprotectedHeader : types . JWEHeaderParameters ) : this {
103- if ( this . #sharedUnprotectedHeader) {
104- throw new TypeError ( 'setSharedUnprotectedHeader can only be called once' )
105- }
99+ assertNotSet ( this . #sharedUnprotectedHeader, 'setSharedUnprotectedHeader' )
106100 this . #sharedUnprotectedHeader = sharedUnprotectedHeader
107101 return this
108102 }
@@ -113,9 +107,7 @@ export class FlattenedEncrypt {
113107 * @param unprotectedHeader JWE Per-Recipient Unprotected Header.
114108 */
115109 setUnprotectedHeader ( unprotectedHeader : types . JWEHeaderParameters ) : this {
116- if ( this . #unprotectedHeader) {
117- throw new TypeError ( 'setUnprotectedHeader can only be called once' )
118- }
110+ assertNotSet ( this . #unprotectedHeader, 'setUnprotectedHeader' )
119111 this . #unprotectedHeader = unprotectedHeader
120112 return this
121113 }
@@ -140,9 +132,7 @@ export class FlattenedEncrypt {
140132 * @param cek JWE Content Encryption Key.
141133 */
142134 setContentEncryptionKey ( cek : Uint8Array ) : this {
143- if ( this . #cek) {
144- throw new TypeError ( 'setContentEncryptionKey can only be called once' )
145- }
135+ assertNotSet ( this . #cek, 'setContentEncryptionKey' )
146136 this . #cek = cek
147137 return this
148138 }
@@ -157,9 +147,7 @@ export class FlattenedEncrypt {
157147 * @param iv JWE Initialization Vector.
158148 */
159149 setInitializationVector ( iv : Uint8Array ) : this {
160- if ( this . #iv) {
161- throw new TypeError ( 'setInitializationVector can only be called once' )
162- }
150+ assertNotSet ( this . #iv, 'setInitializationVector' )
163151 this . #iv = iv
164152 return this
165153 }
0 commit comments