Deployed the page to Github Pages.
This commit is contained in:
parent
1d79754e93
commit
2c89899458
62797 changed files with 6551425 additions and 15279 deletions
23
node_modules/@sigstore/sign/dist/bundler/base.d.ts
generated
vendored
Normal file
23
node_modules/@sigstore/sign/dist/bundler/base.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
/// <reference types="node" />
|
||||
import type { Bundle } from '@sigstore/bundle';
|
||||
import type { Signature, Signer } from '../signer';
|
||||
import type { Witness } from '../witness';
|
||||
export interface BundleBuilderOptions {
|
||||
signer: Signer;
|
||||
witnesses: Witness[];
|
||||
}
|
||||
export interface Artifact {
|
||||
data: Buffer;
|
||||
type?: string;
|
||||
}
|
||||
export interface BundleBuilder {
|
||||
create: (artifact: Artifact) => Promise<Bundle>;
|
||||
}
|
||||
export declare abstract class BaseBundleBuilder<T extends Bundle> implements BundleBuilder {
|
||||
protected signer: Signer;
|
||||
private witnesses;
|
||||
constructor(options: BundleBuilderOptions);
|
||||
create(artifact: Artifact): Promise<T>;
|
||||
protected prepare(artifact: Artifact): Promise<Buffer>;
|
||||
protected abstract package(artifact: Artifact, signature: Signature): Promise<T>;
|
||||
}
|
50
node_modules/@sigstore/sign/dist/bundler/base.js
generated
vendored
Normal file
50
node_modules/@sigstore/sign/dist/bundler/base.js
generated
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BaseBundleBuilder = void 0;
|
||||
// BaseBundleBuilder is a base class for BundleBuilder implementations. It
|
||||
// provides a the basic wokflow for signing and witnessing an artifact.
|
||||
// Subclasses must implement the `package` method to assemble a valid bundle
|
||||
// with the generated signature and verification material.
|
||||
class BaseBundleBuilder {
|
||||
constructor(options) {
|
||||
this.signer = options.signer;
|
||||
this.witnesses = options.witnesses;
|
||||
}
|
||||
// Executes the signing/witnessing process for the given artifact.
|
||||
async create(artifact) {
|
||||
const signature = await this.prepare(artifact).then((blob) => this.signer.sign(blob));
|
||||
const bundle = await this.package(artifact, signature);
|
||||
// Invoke all of the witnesses in parallel
|
||||
const verificationMaterials = await Promise.all(this.witnesses.map((witness) => witness.testify(bundle.content, publicKey(signature.key))));
|
||||
// Collect the verification material from all of the witnesses
|
||||
const tlogEntryList = [];
|
||||
const timestampList = [];
|
||||
verificationMaterials.forEach(({ tlogEntries, rfc3161Timestamps }) => {
|
||||
tlogEntryList.push(...(tlogEntries ?? []));
|
||||
timestampList.push(...(rfc3161Timestamps ?? []));
|
||||
});
|
||||
// Merge the collected verification material into the bundle
|
||||
bundle.verificationMaterial.tlogEntries = tlogEntryList;
|
||||
bundle.verificationMaterial.timestampVerificationData = {
|
||||
rfc3161Timestamps: timestampList,
|
||||
};
|
||||
return bundle;
|
||||
}
|
||||
// Override this function to apply any pre-signing transformations to the
|
||||
// artifact. The returned buffer will be signed by the signer. The default
|
||||
// implementation simply returns the artifact data.
|
||||
async prepare(artifact) {
|
||||
return artifact.data;
|
||||
}
|
||||
}
|
||||
exports.BaseBundleBuilder = BaseBundleBuilder;
|
||||
// Extracts the public key from a KeyMaterial. Returns either the public key
|
||||
// or the certificate, depending on the type of key material.
|
||||
function publicKey(key) {
|
||||
switch (key.$case) {
|
||||
case 'publicKey':
|
||||
return key.publicKey;
|
||||
case 'x509Certificate':
|
||||
return key.certificate;
|
||||
}
|
||||
}
|
5
node_modules/@sigstore/sign/dist/bundler/bundle.d.ts
generated
vendored
Normal file
5
node_modules/@sigstore/sign/dist/bundler/bundle.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
import * as sigstore from '@sigstore/bundle';
|
||||
import type { Signature } from '../signer';
|
||||
import type { Artifact } from './base';
|
||||
export declare function toMessageSignatureBundle(artifact: Artifact, signature: Signature): sigstore.BundleWithMessageSignature;
|
||||
export declare function toDSSEBundle(artifact: Required<Artifact>, signature: Signature, singleCertificate?: boolean): sigstore.BundleWithDsseEnvelope;
|
71
node_modules/@sigstore/sign/dist/bundler/bundle.js
generated
vendored
Normal file
71
node_modules/@sigstore/sign/dist/bundler/bundle.js
generated
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.toDSSEBundle = exports.toMessageSignatureBundle = void 0;
|
||||
/*
|
||||
Copyright 2023 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const sigstore = __importStar(require("@sigstore/bundle"));
|
||||
const util_1 = require("../util");
|
||||
// Helper functions for assembling the parts of a Sigstore bundle
|
||||
// Message signature bundle - $case: 'messageSignature'
|
||||
function toMessageSignatureBundle(artifact, signature) {
|
||||
const digest = util_1.crypto.hash(artifact.data);
|
||||
return sigstore.toMessageSignatureBundle({
|
||||
digest,
|
||||
signature: signature.signature,
|
||||
certificate: signature.key.$case === 'x509Certificate'
|
||||
? util_1.pem.toDER(signature.key.certificate)
|
||||
: undefined,
|
||||
keyHint: signature.key.$case === 'publicKey' ? signature.key.hint : undefined,
|
||||
});
|
||||
}
|
||||
exports.toMessageSignatureBundle = toMessageSignatureBundle;
|
||||
// DSSE envelope bundle - $case: 'dsseEnvelope'
|
||||
function toDSSEBundle(artifact, signature, singleCertificate) {
|
||||
return sigstore.toDSSEBundle({
|
||||
artifact: artifact.data,
|
||||
artifactType: artifact.type,
|
||||
signature: signature.signature,
|
||||
certificate: signature.key.$case === 'x509Certificate'
|
||||
? util_1.pem.toDER(signature.key.certificate)
|
||||
: undefined,
|
||||
keyHint: signature.key.$case === 'publicKey' ? signature.key.hint : undefined,
|
||||
singleCertificate,
|
||||
});
|
||||
}
|
||||
exports.toDSSEBundle = toDSSEBundle;
|
14
node_modules/@sigstore/sign/dist/bundler/dsse.d.ts
generated
vendored
Normal file
14
node_modules/@sigstore/sign/dist/bundler/dsse.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
/// <reference types="node" />
|
||||
import { Artifact, BaseBundleBuilder, BundleBuilderOptions } from './base';
|
||||
import type { BundleWithDsseEnvelope } from '@sigstore/bundle';
|
||||
import type { Signature } from '../signer';
|
||||
type DSSEBundleBuilderOptions = BundleBuilderOptions & {
|
||||
singleCertificate?: boolean;
|
||||
};
|
||||
export declare class DSSEBundleBuilder extends BaseBundleBuilder<BundleWithDsseEnvelope> {
|
||||
private singleCertificate?;
|
||||
constructor(options: DSSEBundleBuilderOptions);
|
||||
protected prepare(artifact: Artifact): Promise<Buffer>;
|
||||
protected package(artifact: Artifact, signature: Signature): Promise<BundleWithDsseEnvelope>;
|
||||
}
|
||||
export {};
|
46
node_modules/@sigstore/sign/dist/bundler/dsse.js
generated
vendored
Normal file
46
node_modules/@sigstore/sign/dist/bundler/dsse.js
generated
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.DSSEBundleBuilder = void 0;
|
||||
/*
|
||||
Copyright 2023 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const util_1 = require("../util");
|
||||
const base_1 = require("./base");
|
||||
const bundle_1 = require("./bundle");
|
||||
// BundleBuilder implementation for DSSE wrapped attestations
|
||||
class DSSEBundleBuilder extends base_1.BaseBundleBuilder {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
this.singleCertificate = options.singleCertificate ?? false;
|
||||
}
|
||||
// DSSE requires the artifact to be pre-encoded with the payload type
|
||||
// before the signature is generated.
|
||||
async prepare(artifact) {
|
||||
const a = artifactDefaults(artifact);
|
||||
return util_1.dsse.preAuthEncoding(a.type, a.data);
|
||||
}
|
||||
// Packages the artifact and signature into a DSSE bundle
|
||||
async package(artifact, signature) {
|
||||
return (0, bundle_1.toDSSEBundle)(artifactDefaults(artifact), signature, this.singleCertificate);
|
||||
}
|
||||
}
|
||||
exports.DSSEBundleBuilder = DSSEBundleBuilder;
|
||||
// Defaults the artifact type to an empty string if not provided
|
||||
function artifactDefaults(artifact) {
|
||||
return {
|
||||
...artifact,
|
||||
type: artifact.type ?? '',
|
||||
};
|
||||
}
|
3
node_modules/@sigstore/sign/dist/bundler/index.d.ts
generated
vendored
Normal file
3
node_modules/@sigstore/sign/dist/bundler/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
export type { Artifact, BundleBuilder, BundleBuilderOptions } from './base';
|
||||
export { DSSEBundleBuilder } from './dsse';
|
||||
export { MessageSignatureBundleBuilder } from './message';
|
7
node_modules/@sigstore/sign/dist/bundler/index.js
generated
vendored
Normal file
7
node_modules/@sigstore/sign/dist/bundler/index.js
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MessageSignatureBundleBuilder = exports.DSSEBundleBuilder = void 0;
|
||||
var dsse_1 = require("./dsse");
|
||||
Object.defineProperty(exports, "DSSEBundleBuilder", { enumerable: true, get: function () { return dsse_1.DSSEBundleBuilder; } });
|
||||
var message_1 = require("./message");
|
||||
Object.defineProperty(exports, "MessageSignatureBundleBuilder", { enumerable: true, get: function () { return message_1.MessageSignatureBundleBuilder; } });
|
7
node_modules/@sigstore/sign/dist/bundler/message.d.ts
generated
vendored
Normal file
7
node_modules/@sigstore/sign/dist/bundler/message.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
import { Artifact, BaseBundleBuilder, BundleBuilderOptions } from './base';
|
||||
import type { BundleWithMessageSignature } from '@sigstore/bundle';
|
||||
import type { Signature } from '../signer';
|
||||
export declare class MessageSignatureBundleBuilder extends BaseBundleBuilder<BundleWithMessageSignature> {
|
||||
constructor(options: BundleBuilderOptions);
|
||||
protected package(artifact: Artifact, signature: Signature): Promise<BundleWithMessageSignature>;
|
||||
}
|
30
node_modules/@sigstore/sign/dist/bundler/message.js
generated
vendored
Normal file
30
node_modules/@sigstore/sign/dist/bundler/message.js
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MessageSignatureBundleBuilder = void 0;
|
||||
/*
|
||||
Copyright 2023 The Sigstore Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
const base_1 = require("./base");
|
||||
const bundle_1 = require("./bundle");
|
||||
// BundleBuilder implementation for raw message signatures
|
||||
class MessageSignatureBundleBuilder extends base_1.BaseBundleBuilder {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
}
|
||||
async package(artifact, signature) {
|
||||
return (0, bundle_1.toMessageSignatureBundle)(artifact, signature);
|
||||
}
|
||||
}
|
||||
exports.MessageSignatureBundleBuilder = MessageSignatureBundleBuilder;
|
Loading…
Add table
Add a link
Reference in a new issue