Skip to content

Commit 8a2ee2f

Browse files
authored
integrate bundle format changes (#212)
* integrate bundle format changes Signed-off-by: Brian DeHamer <bdehamer@github.com> * bundle change cleanup Signed-off-by: Brian DeHamer <bdehamer@github.com> * bump package version to 0.4.0 Signed-off-by: Brian DeHamer <bdehamer@github.com> Signed-off-by: Brian DeHamer <bdehamer@github.com>
1 parent 21d2dd0 commit 8a2ee2f

File tree

22 files changed

+3154
-684
lines changed

22 files changed

+3154
-684
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sigstore",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"description": "code-signing for npm packages",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/__tests__/__fixtures__/bundles/dsse.ts

Lines changed: 148 additions & 170 deletions
Large diffs are not rendered by default.

src/__tests__/__fixtures__/bundles/signature.ts

Lines changed: 87 additions & 101 deletions
Large diffs are not rendered by default.

src/__tests__/ca/verify.test.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,12 @@ limitations under the License.
1515
*/
1616
import fs from 'fs';
1717
import { verifySigningCertificate } from '../../ca/verify';
18-
import { translateLegacyBundleJSON } from '../../types';
1918
import * as sigstore from '../../types/sigstore';
2019
import bundles from '../__fixtures__/bundles/';
2120

2221
describe('verifySigningCertificate', () => {
2322
// Temporary until we reconsole bundle formats
24-
const bundleJSON = translateLegacyBundleJSON(
25-
bundles.dsse.valid.withSigningCert
26-
);
23+
const bundleJSON = bundles.dsse.valid.withSigningCert;
2724
const bundle = sigstore.Bundle.fromJSON(bundleJSON);
2825

2926
const trustedRootJSON = JSON.parse(
@@ -42,9 +39,7 @@ describe('verifySigningCertificate', () => {
4239

4340
describe('when the bundle does not contain a certificate chain', () => {
4441
// Bundle with no certificate chain
45-
const bundleJSON = translateLegacyBundleJSON(
46-
bundles.dsse.valid.withPublicKey
47-
);
42+
const bundleJSON = bundles.dsse.valid.withPublicKey;
4843
const bundle = sigstore.Bundle.fromJSON(bundleJSON);
4944

5045
it('throws an error', () => {

src/__tests__/sign.test.ts

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -176,18 +176,12 @@ describe('Signer', () => {
176176
fail('Expected x509CertificateChain');
177177
}
178178

179-
// Timestamp verification data
180-
expect(bundle.verificationData).toBeTruthy();
181179
expect(
182-
bundle.verificationData?.timestampVerificationData
183-
).toBeTruthy();
184-
expect(
185-
bundle.verificationData?.timestampVerificationData
186-
?.rfc3161Timestamps
187-
).toHaveLength(0);
188-
expect(bundle.verificationData?.tlogEntries).toHaveLength(1);
180+
bundle.verificationMaterial?.timestampVerificationData
181+
).toBeUndefined();
182+
expect(bundle.verificationMaterial?.tlogEntries).toHaveLength(1);
189183

190-
const tlog = bundle.verificationData?.tlogEntries[0];
184+
const tlog = bundle.verificationMaterial?.tlogEntries[0];
191185
expect(tlog?.inclusionPromise).toBeTruthy();
192186
expect(tlog?.inclusionPromise?.signedEntryTimestamp).toBeTruthy();
193187
expect(
@@ -364,18 +358,12 @@ describe('Signer', () => {
364358
fail('Expected x509CertificateChain');
365359
}
366360

367-
// Timestamp verification data
368-
expect(bundle.verificationData).toBeTruthy();
369-
expect(
370-
bundle.verificationData?.timestampVerificationData
371-
).toBeTruthy();
372361
expect(
373-
bundle.verificationData?.timestampVerificationData
374-
?.rfc3161Timestamps
375-
).toHaveLength(0);
376-
expect(bundle.verificationData?.tlogEntries).toHaveLength(1);
362+
bundle.verificationMaterial?.timestampVerificationData
363+
).toBeUndefined();
364+
expect(bundle.verificationMaterial?.tlogEntries).toHaveLength(1);
377365

378-
const tlog = bundle.verificationData?.tlogEntries[0];
366+
const tlog = bundle.verificationMaterial?.tlogEntries[0];
379367
expect(tlog?.inclusionPromise).toBeTruthy();
380368
expect(tlog?.inclusionPromise?.signedEntryTimestamp).toBeTruthy();
381369
expect(

src/__tests__/sigstore.test.ts

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,43 +18,43 @@ import { sign, signAttestation, utils, verify } from '../sigstore';
1818
import {
1919
Bundle,
2020
HashAlgorithm,
21-
VerificationData,
21+
TimestampVerificationData,
22+
TransparencyLogEntry,
2223
X509CertificateChain,
2324
} from '../types/bundle';
2425
import bundles from './__fixtures__/bundles';
2526

2627
jest.mock('../sign');
2728

28-
const verificationData: VerificationData = {
29-
tlogEntries: [
30-
{
29+
const tlogEntries: TransparencyLogEntry[] = [
30+
{
31+
logIndex: '0',
32+
logId: {
33+
keyId: Buffer.from('logId'),
34+
},
35+
kindVersion: {
36+
kind: 'kind',
37+
version: 'version',
38+
},
39+
canonicalizedBody: Buffer.from('body'),
40+
integratedTime: '2021-01-01T00:00:00Z',
41+
inclusionPromise: {
42+
signedEntryTimestamp: Buffer.from('inclusionPromise'),
43+
},
44+
inclusionProof: {
3145
logIndex: '0',
32-
logId: {
33-
keyId: Buffer.from('logId'),
34-
},
35-
kindVersion: {
36-
kind: 'kind',
37-
version: 'version',
38-
},
39-
canonicalizedBody: Buffer.from('body'),
40-
integratedTime: '2021-01-01T00:00:00Z',
41-
inclusionPromise: {
42-
signedEntryTimestamp: Buffer.from('inclusionPromise'),
43-
},
44-
inclusionProof: {
45-
logIndex: '0',
46-
rootHash: Buffer.from('rootHash'),
47-
treeSize: '0',
48-
hashes: [Buffer.from('hash')],
49-
checkpoint: {
50-
envelope: 'checkpoint',
51-
},
46+
rootHash: Buffer.from('rootHash'),
47+
treeSize: '0',
48+
hashes: [Buffer.from('hash')],
49+
checkpoint: {
50+
envelope: 'checkpoint',
5251
},
5352
},
54-
],
55-
timestampVerificationData: {
56-
rfc3161Timestamps: [{ signedTimestamp: Buffer.from('signedTimestamp') }],
5753
},
54+
];
55+
56+
const timestampVerificationData: TimestampVerificationData = {
57+
rfc3161Timestamps: [{ signedTimestamp: Buffer.from('signedTimestamp') }],
5858
};
5959

6060
const x509CertificateChain: X509CertificateChain = {
@@ -74,12 +74,13 @@ describe('sign', () => {
7474
// Signer output
7575
const bundle: Bundle = {
7676
mediaType: 'test/output',
77-
verificationData: verificationData,
7877
verificationMaterial: {
7978
content: {
8079
$case: 'x509CertificateChain',
8180
x509CertificateChain: x509CertificateChain,
8281
},
82+
tlogEntries,
83+
timestampVerificationData,
8384
},
8485
content: {
8586
$case: 'messageSignature',
@@ -141,12 +142,13 @@ describe('signAttestation', () => {
141142
// Signer output
142143
const bundle: Bundle = {
143144
mediaType: 'test/output',
144-
verificationData: verificationData,
145145
verificationMaterial: {
146146
content: {
147147
$case: 'x509CertificateChain',
148148
x509CertificateChain: x509CertificateChain,
149149
},
150+
tlogEntries,
151+
timestampVerificationData,
150152
},
151153
content: {
152154
$case: 'dsseEnvelope',

src/__tests__/tlog/index.test.ts

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -147,15 +147,12 @@ describe('TLogClient', () => {
147147
fail('Expected x509CertificateChain');
148148
}
149149

150-
// Timestamp verification data
151-
expect(bundle.verificationData).toBeTruthy();
152-
expect(bundle.verificationData?.timestampVerificationData).toBeTruthy();
153150
expect(
154-
bundle.verificationData?.timestampVerificationData?.rfc3161Timestamps
155-
).toHaveLength(0);
156-
expect(bundle.verificationData?.tlogEntries).toHaveLength(1);
151+
bundle.verificationMaterial?.timestampVerificationData
152+
).toBeUndefined();
153+
expect(bundle.verificationMaterial?.tlogEntries).toHaveLength(1);
157154

158-
const tlog = bundle.verificationData?.tlogEntries[0];
155+
const tlog = bundle.verificationMaterial?.tlogEntries[0];
159156
expect(tlog?.inclusionPromise).toBeTruthy();
160157
expect(tlog?.inclusionPromise?.signedEntryTimestamp).toBeTruthy();
161158
expect(
@@ -364,15 +361,12 @@ describe('TLogClient', () => {
364361
fail('Expected x509CertificateChain');
365362
}
366363

367-
// Timestamp verification data
368-
expect(bundle.verificationData).toBeTruthy();
369-
expect(bundle.verificationData?.timestampVerificationData).toBeTruthy();
370364
expect(
371-
bundle.verificationData?.timestampVerificationData?.rfc3161Timestamps
372-
).toHaveLength(0);
373-
expect(bundle.verificationData?.tlogEntries).toHaveLength(1);
365+
bundle.verificationMaterial?.timestampVerificationData
366+
).toBeUndefined();
367+
expect(bundle.verificationMaterial?.tlogEntries).toHaveLength(1);
374368

375-
const tlog = bundle.verificationData?.tlogEntries[0];
369+
const tlog = bundle.verificationMaterial?.tlogEntries[0];
376370
expect(tlog?.inclusionPromise).toBeTruthy();
377371
expect(tlog?.inclusionPromise?.signedEntryTimestamp).toBeTruthy();
378372
expect(

src/__tests__/types/bundle/index.test.ts

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,10 @@ describe('bundle', () => {
8787
}
8888

8989
// Timestamp verification data
90-
expect(b.verificationData).toBeTruthy();
91-
expect(b.verificationData?.timestampVerificationData).toBeTruthy();
92-
expect(
93-
b.verificationData?.timestampVerificationData?.rfc3161Timestamps
94-
).toHaveLength(0);
95-
expect(b.verificationData?.tlogEntries).toHaveLength(1);
90+
expect(b.verificationMaterial?.timestampVerificationData).toBeUndefined();
91+
expect(b.verificationMaterial?.tlogEntries).toHaveLength(1);
9692

97-
const tlog = b.verificationData?.tlogEntries[0];
93+
const tlog = b.verificationMaterial?.tlogEntries[0];
9894
expect(tlog?.inclusionPromise).toBeTruthy();
9995
expect(
10096
tlog?.inclusionPromise?.signedEntryTimestamp.toString('base64')
@@ -170,15 +166,10 @@ describe('bundle', () => {
170166
fail('Expected x509CertificateChain');
171167
}
172168

173-
// Timestamp verification data
174-
expect(b.verificationData).toBeTruthy();
175-
expect(b.verificationData?.timestampVerificationData).toBeTruthy();
176-
expect(
177-
b.verificationData?.timestampVerificationData?.rfc3161Timestamps
178-
).toHaveLength(0);
179-
expect(b.verificationData?.tlogEntries).toHaveLength(1);
169+
expect(b.verificationMaterial?.timestampVerificationData).toBeUndefined();
170+
expect(b.verificationMaterial?.tlogEntries).toHaveLength(1);
180171

181-
const tlog = b.verificationData?.tlogEntries[0];
172+
const tlog = b.verificationMaterial?.tlogEntries[0];
182173
expect(tlog?.inclusionPromise).toBeTruthy();
183174
expect(
184175
tlog?.inclusionPromise?.signedEntryTimestamp.toString('base64')

0 commit comments

Comments
 (0)