1.5 KiB
1.5 KiB
keys/serialize-pkcs1-private
Purpose
Inverse of parseRsaPrivateKeyPkcs1. Emits a DER RSAPrivateKey SEQUENCE
per RFC 8017 Appendix A.1.2 from a canonical RsaPrivateKey. Always emits
two-prime form with version 0. Multi-prime keys cannot be constructed
through this package's parsers (the parser rejects them) so the serialiser
also never has to emit the multi-prime branch.
Features
- Strict-DER nine-INTEGER SEQUENCE emission in canonical field order.
- Always emits
version 0(two-prime). - Pure function — no validation overhead.
Usage: Basic Example
import { serializeRsaPrivateKeyPkcs1 } from "@suaveplan/crypto-rsa";
const der = serializeRsaPrivateKeyPkcs1(key);
Usage: Advanced Example
import {
parseRsaPrivateKeyPkcs1,
serializeRsaPrivateKeyPkcs1,
} from "@suaveplan/crypto-rsa";
const roundTripped = parseRsaPrivateKeyPkcs1(
serializeRsaPrivateKeyPkcs1(key)
);
API Reference
serializeRsaPrivateKeyPkcs1(key: RsaPrivateKey): Uint8Array
Returns the canonical DER encoding.
Implementation Notes
The field order matches RFC 8017 Appendix A.1.2 exactly: version,
modulus, publicExponent, privateExponent, prime1, prime2,
exponent1, exponent2, coefficient. Any reorder would still parse
under a tolerant reader but would fail strict-DER validation.
version is encoded as 0n rather than 0 (a bigint) because
encodeInteger is monomorphised over bigint for the two-prime case.