Skip to content

Latest commit

 

History

History
223 lines (140 loc) · 7.43 KB

_jwe_flattened_encrypt_.flattenedencrypt.md

File metadata and controls

223 lines (140 loc) · 7.43 KB

Class: FlattenedEncrypt

The FlattenedEncrypt class is a utility for creating Flattened JWE objects.

example

// ESM import
import FlattenedEncrypt from 'jose/jwe/flattened/encrypt'

example

// CJS import
const { default: FlattenedEncrypt } = require('jose/jwe/flattened/encrypt')

example

// usage
import parseJwk from 'jose/jwk/parse'

const encoder = new TextEncoder()
const publicKey = await parseJwk({
  e: 'AQAB',
  n: 'qpzYkTGRKSUcd12hZaJnYEKVLfdEsqu6HBAxZgRSvzLFj_zTSAEXjbf3fX47MPEHRw8NDcEXPjVOz84t4FTXYF2w2_LGWfp_myjV8pR6oUUncJjS7DhnUmTG5bpuK2HFXRMRJYz_iNR48xRJPMoY84jrnhdIFx8Tqv6w4ZHVyEvcvloPgwG3UjLidP6jmqbTiJtidVLnpQJRuFNFQJiluQXBZ1nOLC7raQshu7L9y0IatVU7vf0BPnmuSkcNNvmQkSta6ODQBPaL5-o5SW8H37vQjPDkrlJpreViNa3jqP5DB5HYUO-DMh4FegRv9gZWLDEvXpSd9A13YXCa9Q8K_w',
  kty: 'RSA'
}, 'RSA-OAEP-256')

const jwe = await new FlattenedEncrypt(encoder.encode('It’s a dangerous business, Frodo, going out your door.'))
  .setProtectedHeader({ alg: 'RSA-OAEP-256', enc: 'A256GCM' })
  .setAdditionalAuthenticatedData(encoder.encode('The Fellowship of the Ring'))
  .encrypt(publicKey)

console.log(jwe)

Index

Constructors

Methods

Constructors

constructor

+ new FlattenedEncrypt(plaintext: Uint8Array): FlattenedEncrypt

Defined in src/jwe/flattened/encrypt.ts:75

Parameters:

Name Type Description
plaintext Uint8Array Binary representation of the plaintext to encrypt.

Returns: FlattenedEncrypt

Methods

encrypt

encrypt(key: KeyLike, options?: EncryptOptions): Promise<FlattenedJWE>

Defined in src/jwe/flattened/encrypt.ts:187

Encrypts and resolves the value of the Flattened JWE object.

Parameters:

Name Type Description
key KeyLike Public Key or Secret to encrypt the JWE with.
options? EncryptOptions JWE Encryption options.

Returns: Promise<FlattenedJWE>


setAdditionalAuthenticatedData

setAdditionalAuthenticatedData(aad: Uint8Array): this

Defined in src/jwe/flattened/encrypt.ts:144

Sets the Additional Authenticated Data on the FlattenedEncrypt object.

Parameters:

Name Type Description
aad Uint8Array Additional Authenticated Data.

Returns: this


setContentEncryptionKey

setContentEncryptionKey(cek: Uint8Array): this

Defined in src/jwe/flattened/encrypt.ts:157

Sets a content encryption key to use, by default a random suitable one is generated for the JWE enc" (Encryption Algorithm) Header Parameter. You do not need to invoke this method, it is only really intended for test and vector validation purposes.

Parameters:

Name Type Description
cek Uint8Array JWE Content Encryption Key.

Returns: this


setInitializationVector

setInitializationVector(iv: Uint8Array): this

Defined in src/jwe/flattened/encrypt.ts:173

Sets the JWE Initialization Vector to use for content encryption, by default a random suitable one is generated for the JWE enc" (Encryption Algorithm) Header Parameter. You do not need to invoke this method, it is only really intended for test and vector validation purposes.

Parameters:

Name Type Description
iv Uint8Array JWE Initialization Vector.

Returns: this


setKeyManagementParameters

setKeyManagementParameters(parameters: JWEKeyManagementHeaderParameters): this

Defined in src/jwe/flattened/encrypt.ts:92

Sets the JWE Key Management parameters to be used when encrypting. Use of this is method is really only needed for ECDH-ES based algorithms when utilizing the Agreement PartyUInfo or Agreement PartyVInfo parameters. Other parameters will always be randomly generated when needed and missing.

Parameters:

Name Type Description
parameters JWEKeyManagementHeaderParameters JWE Key Management parameters.

Returns: this


setProtectedHeader

setProtectedHeader(protectedHeader: JWEHeaderParameters): this

Defined in src/jwe/flattened/encrypt.ts:105

Sets the JWE Protected Header on the FlattenedEncrypt object.

Parameters:

Name Type Description
protectedHeader JWEHeaderParameters JWE Protected Header.

Returns: this


setSharedUnprotectedHeader

setSharedUnprotectedHeader(sharedUnprotectedHeader: JWEHeaderParameters): this

Defined in src/jwe/flattened/encrypt.ts:118

Sets the JWE Shared Unprotected Header on the FlattenedEncrypt object.

Parameters:

Name Type Description
sharedUnprotectedHeader JWEHeaderParameters JWE Shared Unprotected Header.

Returns: this


setUnprotectedHeader

setUnprotectedHeader(unprotectedHeader: JWEHeaderParameters): this

Defined in src/jwe/flattened/encrypt.ts:131

Sets the JWE Per-Recipient Unprotected Header on the FlattenedEncrypt object.

Parameters:

Name Type Description
unprotectedHeader JWEHeaderParameters JWE Per-Recipient Unprotected Header.

Returns: this