1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3exports.signatureContent = exports.toSignedEntity = void 0; 4const core_1 = require("@sigstore/core"); 5const dsse_1 = require("./dsse"); 6const message_1 = require("./message"); 7function toSignedEntity(bundle, artifact) { 8 const { tlogEntries, timestampVerificationData } = bundle.verificationMaterial; 9 const timestamps = []; 10 for (const entry of tlogEntries) { 11 timestamps.push({ 12 $case: 'transparency-log', 13 tlogEntry: entry, 14 }); 15 } 16 for (const ts of timestampVerificationData?.rfc3161Timestamps ?? []) { 17 timestamps.push({ 18 $case: 'timestamp-authority', 19 timestamp: core_1.RFC3161Timestamp.parse(ts.signedTimestamp), 20 }); 21 } 22 return { 23 signature: signatureContent(bundle, artifact), 24 key: key(bundle), 25 tlogEntries, 26 timestamps, 27 }; 28} 29exports.toSignedEntity = toSignedEntity; 30function signatureContent(bundle, artifact) { 31 switch (bundle.content.$case) { 32 case 'dsseEnvelope': 33 return new dsse_1.DSSESignatureContent(bundle.content.dsseEnvelope); 34 case 'messageSignature': 35 return new message_1.MessageSignatureContent(bundle.content.messageSignature, artifact); 36 } 37} 38exports.signatureContent = signatureContent; 39function key(bundle) { 40 switch (bundle.verificationMaterial.content.$case) { 41 case 'publicKey': 42 return { 43 $case: 'public-key', 44 hint: bundle.verificationMaterial.content.publicKey.hint, 45 }; 46 case 'x509CertificateChain': 47 return { 48 $case: 'certificate', 49 certificate: core_1.X509Certificate.parse(bundle.verificationMaterial.content.x509CertificateChain 50 .certificates[0].rawBytes), 51 }; 52 case 'certificate': 53 return { 54 $case: 'certificate', 55 certificate: core_1.X509Certificate.parse(bundle.verificationMaterial.content.certificate.rawBytes), 56 }; 57 } 58} 59