Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
concatBuffers,
MessageHeader, // eslint-disable-line no-unused-vars
SerializationVersion,
ObjectType,
ContentType,
serializeSignatureInfo,
FRAME_LENGTH,
MESSAGE_ID_LENGTH,
raw2der,
Maximum
} from '@aws-crypto/serialize'
import { fromUtf8 } from '@aws-sdk/util-utf8-browser'
import { getWebCryptoBackend } from '@aws-crypto/web-crypto-backend'
const serialize = serializeFactory(fromUtf8)
const { messageAADContentString, messageAAD } = aadFactory(fromUtf8)
export interface EncryptInput {
suiteId?: AlgorithmSuiteIdentifier
encryptionContext?: EncryptionContext
frameLength?: number
// plaintextLength?: number // Subtle Crypto functions are all one-shot, so frames and length are === plaintext.byteLength
}
export interface EncryptResult {
messageHeader: MessageHeader
result: Uint8Array
}
export async function encrypt (
cmm: KeyringWebCrypto|WebCryptoMaterialsManager,
plaintext: Uint8Array,
} from '@aws-crypto/material-management-browser'
import {
deserializeSignature,
MessageHeader, // eslint-disable-line no-unused-vars
deserializeFactory,
kdfInfo,
decodeBodyHeader,
aadFactory,
concatBuffers,
der2raw,
HeaderInfo // eslint-disable-line no-unused-vars
} from '@aws-crypto/serialize'
import { fromUtf8, toUtf8 } from '@aws-sdk/util-utf8-browser'
const deserialize = deserializeFactory(toUtf8, WebCryptoAlgorithmSuite)
const { messageAADContentString, messageAAD } = aadFactory(fromUtf8)
export interface DecryptResult {
messageHeader: MessageHeader
plaintext: Uint8Array
}
export async function decrypt (
cmm: KeyringWebCrypto|WebCryptoMaterialsManager,
ciphertext: Uint8Array
): Promise {
/* If the cmm is a Keyring, wrap it with WebCryptoDefaultCryptographicMaterialsManager. */
cmm = cmm instanceof KeyringWebCrypto
? new WebCryptoDefaultCryptographicMaterialsManager(cmm)
: cmm
const headerInfo = deserialize.deserializeMessageHeader(ciphertext)