Initial Commit
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import {
|
||||
encodeBitString,
|
||||
encodeNull,
|
||||
encodeObjectIdentifier,
|
||||
encodeSequence,
|
||||
} from "../asn1/writer.js";
|
||||
import type { RsaPublicKey } from "./keys.types.js";
|
||||
import { OID_RSA_ENCRYPTION } from "./oid.js";
|
||||
import { serializeRsaPublicKeyPkcs1 } from "./serialize-pkcs1-public.js";
|
||||
|
||||
/**
|
||||
* Serialise an `RsaPublicKey` to a DER-encoded `SubjectPublicKeyInfo`
|
||||
* (RFC 5280 §4.1) wrapping a PKCS#1 `RSAPublicKey`.
|
||||
*/
|
||||
export function serializeRsaPublicKeySpki(key: RsaPublicKey): Uint8Array {
|
||||
const algorithm = encodeSequence(
|
||||
encodeObjectIdentifier(OID_RSA_ENCRYPTION),
|
||||
encodeNull()
|
||||
);
|
||||
const subjectPublicKey = encodeBitString(serializeRsaPublicKeyPkcs1(key));
|
||||
return encodeSequence(algorithm, subjectPublicKey);
|
||||
}
|
||||
Reference in New Issue
Block a user