@sigstore/core
Advanced tools
Comparing version 0.1.0 to 0.2.0
@@ -19,4 +19,4 @@ "use strict"; | ||
*/ | ||
const RE_TIME_SHORT_YEAR = /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z$/; | ||
const RE_TIME_LONG_YEAR = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z$/; | ||
const RE_TIME_SHORT_YEAR = /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/; | ||
const RE_TIME_LONG_YEAR = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/; | ||
// Parse a BigInt from the DER-encoded buffer | ||
@@ -23,0 +23,0 @@ // https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-integer |
@@ -6,4 +6,5 @@ /// <reference types="node" /> | ||
export declare function createPublicKey(key: string | Buffer): crypto.KeyObject; | ||
export declare function digest(algorithm: string, ...data: BinaryLike[]): Buffer; | ||
export declare function hash(...data: BinaryLike[]): Buffer; | ||
export declare function verify(data: Buffer, key: crypto.KeyLike, signature: Buffer, algorithm?: string): boolean; | ||
export declare function bufferEqual(a: Buffer, b: Buffer): boolean; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.bufferEqual = exports.verify = exports.hash = exports.createPublicKey = void 0; | ||
exports.bufferEqual = exports.verify = exports.hash = exports.digest = exports.createPublicKey = void 0; | ||
/* | ||
@@ -34,2 +34,11 @@ Copyright 2023 The Sigstore Authors. | ||
exports.createPublicKey = createPublicKey; | ||
function digest(algorithm, ...data) { | ||
const hash = crypto_1.default.createHash(algorithm); | ||
for (const d of data) { | ||
hash.update(d); | ||
} | ||
return hash.digest(); | ||
} | ||
exports.digest = digest; | ||
// TODO: deprecate this in favor of digest() | ||
function hash(...data) { | ||
@@ -36,0 +45,0 @@ const hash = crypto_1.default.createHash(SHA256_ALGORITHM); |
export { ASN1Obj } from './asn1'; | ||
export * as crypto from './crypto'; | ||
export * as dsse from './dsse'; | ||
export * as encoding from './encoding'; | ||
export * as json from './json'; | ||
export * as pem from './pem'; | ||
export { X509Certificate } from './x509'; | ||
export { RFC3161Timestamp } from './rfc3161'; | ||
export { ByteStream } from './stream'; | ||
export { EXTENSION_OID_SCT, X509Certificate, X509SCTExtension } from './x509'; |
@@ -26,3 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.X509Certificate = exports.pem = exports.json = exports.crypto = exports.ASN1Obj = void 0; | ||
exports.X509SCTExtension = exports.X509Certificate = exports.EXTENSION_OID_SCT = exports.ByteStream = exports.RFC3161Timestamp = exports.pem = exports.json = exports.encoding = exports.dsse = exports.crypto = exports.ASN1Obj = void 0; | ||
/* | ||
@@ -46,5 +46,13 @@ Copyright 2023 The Sigstore Authors. | ||
exports.crypto = __importStar(require("./crypto")); | ||
exports.dsse = __importStar(require("./dsse")); | ||
exports.encoding = __importStar(require("./encoding")); | ||
exports.json = __importStar(require("./json")); | ||
exports.pem = __importStar(require("./pem")); | ||
var rfc3161_1 = require("./rfc3161"); | ||
Object.defineProperty(exports, "RFC3161Timestamp", { enumerable: true, get: function () { return rfc3161_1.RFC3161Timestamp; } }); | ||
var stream_1 = require("./stream"); | ||
Object.defineProperty(exports, "ByteStream", { enumerable: true, get: function () { return stream_1.ByteStream; } }); | ||
var x509_1 = require("./x509"); | ||
Object.defineProperty(exports, "EXTENSION_OID_SCT", { enumerable: true, get: function () { return x509_1.EXTENSION_OID_SCT; } }); | ||
Object.defineProperty(exports, "X509Certificate", { enumerable: true, get: function () { return x509_1.X509Certificate; } }); | ||
Object.defineProperty(exports, "X509SCTExtension", { enumerable: true, get: function () { return x509_1.X509SCTExtension; } }); |
/// <reference types="node" /> | ||
export declare function toDER(certificate: string): Buffer; | ||
export declare function fromDER(certificate: Buffer, type?: string): string; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.toDER = void 0; | ||
exports.fromDER = exports.toDER = void 0; | ||
/* | ||
@@ -32,1 +32,14 @@ Copyright 2023 The Sigstore Authors. | ||
exports.toDER = toDER; | ||
// Translates a DER-encoded buffer into a PEM-encoded string. Standard PEM | ||
// encoding dictates that each certificate should have a trailing newline after | ||
// the footer. | ||
function fromDER(certificate, type = 'CERTIFICATE') { | ||
// Base64-encode the certificate. | ||
const der = certificate.toString('base64'); | ||
// Split the certificate into lines of 64 characters. | ||
const lines = der.match(/.{1,64}/g) || ''; | ||
return [`-----BEGIN ${type}-----`, ...lines, `-----END ${type}-----`] | ||
.join('\n') | ||
.concat('\n'); | ||
} | ||
exports.fromDER = fromDER; |
@@ -11,2 +11,3 @@ /// <reference types="node" /> | ||
get version(): string; | ||
get serialNumber(): Buffer; | ||
get notBefore(): Date; | ||
@@ -38,2 +39,3 @@ get notAfter(): Date; | ||
private get versionObj(); | ||
private get serialNumberObj(); | ||
private get issuerObj(); | ||
@@ -40,0 +42,0 @@ private get validityObj(); |
@@ -44,2 +44,3 @@ "use strict"; | ||
const crypto = __importStar(require("../crypto")); | ||
const oid_1 = require("../oid"); | ||
const pem = __importStar(require("../pem")); | ||
@@ -53,8 +54,2 @@ const ext_1 = require("./ext"); | ||
exports.EXTENSION_OID_SCT = '1.3.6.1.4.1.11129.2.4.2'; | ||
const ECDSA_SIGNATURE_ALGOS = { | ||
'1.2.840.10045.4.3.1': 'sha224', | ||
'1.2.840.10045.4.3.2': 'sha256', | ||
'1.2.840.10045.4.3.3': 'sha384', | ||
'1.2.840.10045.4.3.4': 'sha512', | ||
}; | ||
class X509Certificate { | ||
@@ -77,2 +72,5 @@ constructor(asn1) { | ||
} | ||
get serialNumber() { | ||
return this.serialNumberObj.value; | ||
} | ||
get notBefore() { | ||
@@ -97,3 +95,3 @@ // notBefore is the first element of the validity sequence | ||
const oid = this.signatureAlgorithmObj.subs[0].toOID(); | ||
return ECDSA_SIGNATURE_ALGOS[oid]; | ||
return oid_1.ECDSA_SIGNATURE_ALGOS[oid]; | ||
} | ||
@@ -200,2 +198,7 @@ get signatureValue() { | ||
} | ||
// https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.2 | ||
get serialNumberObj() { | ||
// serialNumber is the second element of the tbsCertificate sequence | ||
return this.tbsCertificateObj.subs[1]; | ||
} | ||
// https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.4 | ||
@@ -202,0 +205,0 @@ get issuerObj() { |
@@ -34,3 +34,3 @@ "use strict"; | ||
get isCA() { | ||
return this.sequence.subs[0].toBoolean(); | ||
return this.sequence.subs[0]?.toBoolean() ?? false; | ||
} | ||
@@ -37,0 +37,0 @@ get pathLenConstraint() { |
@@ -1,1 +0,2 @@ | ||
export { X509Certificate } from './cert'; | ||
export { EXTENSION_OID_SCT, X509Certificate } from './cert'; | ||
export { X509SCTExtension } from './ext'; |
@@ -18,4 +18,7 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.X509Certificate = void 0; | ||
exports.X509SCTExtension = exports.X509Certificate = exports.EXTENSION_OID_SCT = void 0; | ||
var cert_1 = require("./cert"); | ||
Object.defineProperty(exports, "EXTENSION_OID_SCT", { enumerable: true, get: function () { return cert_1.EXTENSION_OID_SCT; } }); | ||
Object.defineProperty(exports, "X509Certificate", { enumerable: true, get: function () { return cert_1.X509Certificate; } }); | ||
var ext_1 = require("./ext"); | ||
Object.defineProperty(exports, "X509SCTExtension", { enumerable: true, get: function () { return ext_1.X509SCTExtension; } }); |
{ | ||
"name": "@sigstore/core", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "Base library for Sigstore", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
92598
49
2051