117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
/**
|
|
* @fileoverview Exports all OpenPGP packet types
|
|
* @requires enums
|
|
* @module packet/all_packets
|
|
*/
|
|
|
|
import enums from '../enums.js';
|
|
import * as packets from './all_packets.js'; // re-import module to parse packets from tag
|
|
|
|
export {
|
|
/** @see module:packet.Compressed */
|
|
default as Compressed
|
|
} from './compressed.js';
|
|
export {
|
|
/** @see module:packet.SymEncryptedIntegrityProtected */
|
|
default as SymEncryptedIntegrityProtected
|
|
} from './sym_encrypted_integrity_protected.js';
|
|
export {
|
|
/** @see module:packet.SymEncryptedAEADProtected */
|
|
default as SymEncryptedAEADProtected
|
|
} from './sym_encrypted_aead_protected.js';
|
|
export {
|
|
/** @see module:packet.PublicKeyEncryptedSessionKey */
|
|
default as PublicKeyEncryptedSessionKey
|
|
} from './public_key_encrypted_session_key.js';
|
|
export {
|
|
/** @see module:packet.SymEncryptedSessionKey */
|
|
default as SymEncryptedSessionKey
|
|
} from './sym_encrypted_session_key.js';
|
|
export {
|
|
/** @see module:packet.Literal */
|
|
default as Literal
|
|
} from './literal.js';
|
|
export {
|
|
/** @see module:packet.PublicKey */
|
|
default as PublicKey
|
|
} from './public_key.js';
|
|
export {
|
|
/** @see module:packet.SymmetricallyEncrypted */
|
|
default as SymmetricallyEncrypted
|
|
} from './symmetrically_encrypted.js';
|
|
export {
|
|
/** @see module:packet.Marker */
|
|
default as Marker
|
|
} from './marker.js';
|
|
export {
|
|
/** @see module:packet.PublicSubkey */
|
|
default as PublicSubkey
|
|
} from './public_subkey.js';
|
|
export {
|
|
/** @see module:packet.UserAttribute */
|
|
default as UserAttribute
|
|
} from './user_attribute.js';
|
|
export {
|
|
/** @see module:packet.OnePassSignature */
|
|
default as OnePassSignature
|
|
} from './one_pass_signature.js';
|
|
export {
|
|
/** @see module:packet.SecretKey */
|
|
default as SecretKey
|
|
} from './secret_key.js';
|
|
export {
|
|
/** @see module:packet.Userid */
|
|
default as Userid
|
|
} from './userid.js';
|
|
export {
|
|
/** @see module:packet.SecretSubkey */
|
|
default as SecretSubkey
|
|
} from './secret_subkey.js';
|
|
export {
|
|
/** @see module:packet.Signature */
|
|
default as Signature
|
|
} from './signature.js';
|
|
export {
|
|
/** @see module:packet.Trust */
|
|
default as Trust
|
|
} from './trust.js';
|
|
|
|
/**
|
|
* Allocate a new packet
|
|
* @function newPacketFromTag
|
|
* @memberof module:packet
|
|
* @param {String} tag property name from {@link module:enums.packet}
|
|
* @returns {Object} new packet object with type based on tag
|
|
*/
|
|
export function newPacketFromTag(tag) {
|
|
return new packets[packetClassFromTagName(tag)]();
|
|
}
|
|
|
|
/**
|
|
* Allocate a new packet from structured packet clone
|
|
* @see {@link https://w3c.github.io/html/infrastructure.html#safe-passing-of-structured-data}
|
|
* @function fromStructuredClone
|
|
* @memberof module:packet
|
|
* @param {Object} packetClone packet clone
|
|
* @returns {Object} new packet object with data from packet clone
|
|
*/
|
|
export function fromStructuredClone(packetClone) {
|
|
const tagName = enums.read(enums.packet, packetClone.tag);
|
|
const packet = newPacketFromTag(tagName);
|
|
Object.assign(packet, packetClone);
|
|
if (packet.postCloneTypeFix) {
|
|
packet.postCloneTypeFix();
|
|
}
|
|
return packet;
|
|
}
|
|
|
|
/**
|
|
* Convert tag name to class name
|
|
* @param {String} tag property name from {@link module:enums.packet}
|
|
* @returns {String}
|
|
* @private
|
|
*/
|
|
function packetClassFromTagName(tag) {
|
|
return tag.substr(0, 1).toUpperCase() + tag.substr(1);
|
|
}
|