Skip to main content
Glama
decrypt.js1.05 kB
import { flattenedDecrypt } from '../flattened/decrypt.js'; import { JWEInvalid } from '../../util/errors.js'; import { decoder } from '../../lib/buffer_utils.js'; export async function compactDecrypt(jwe, key, options) { if (jwe instanceof Uint8Array) { jwe = decoder.decode(jwe); } if (typeof jwe !== 'string') { throw new JWEInvalid('Compact JWE must be a string or Uint8Array'); } const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length, } = jwe.split('.'); if (length !== 5) { throw new JWEInvalid('Invalid Compact JWE'); } const decrypted = await flattenedDecrypt({ ciphertext, iv: iv || undefined, protected: protectedHeader, tag: tag || undefined, encrypted_key: encryptedKey || undefined, }, key, options); const result = { plaintext: decrypted.plaintext, protectedHeader: decrypted.protectedHeader }; if (typeof key === 'function') { return { ...result, key: decrypted.key }; } return result; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Valerio357/bet-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server