browserify-hybrid-crypto
Version:
TypeScript implementation Hybrid encryption and signing library built on Web Crypto (AES + RSA + HMAC).
27 lines (24 loc) • 979 B
text/typescript
import { HybridEncryption, NormalizedHybridEncryption } from "./interfaces";
import { fromBase64, toBase64 } from "./utils";
export function normalizeHybridEncryption(
hybridEncryption: HybridEncryption,
): NormalizedHybridEncryption {
return {
encryptedSessionKey: toBase64(hybridEncryption.encryptedSessionKey),
encryptedSigningKey: toBase64(hybridEncryption.encryptedSigningKey),
encryptedData: toBase64(hybridEncryption.encryptedData),
signature: toBase64(hybridEncryption.signature),
iv: toBase64(hybridEncryption.iv),
};
}
export function denormalizeHybridEncryption(
normalized: NormalizedHybridEncryption,
): HybridEncryption {
return {
encryptedSessionKey: fromBase64(normalized.encryptedSessionKey),
encryptedSigningKey: fromBase64(normalized.encryptedSigningKey),
encryptedData: fromBase64(normalized.encryptedData),
signature: fromBase64(normalized.signature),
iv: new Uint8Array(fromBase64(normalized.iv)),
};
}