8 Commits
Author SHA1 Message Date
Bob Beck 96e2cad020 Add support for C2PA validation modes
This permits chains to be validated when the intended
use is to validate a C2PA time stamp signer or C2PA
manifest signer.

As in the RCS MLS case, further C2PA specific checks
for the purpose intended may be needed on the certificate
after verify is run.

Bug: 400963456
Change-Id: I22bfe6b2d3ad3cfd939a2c5a13debb5f0d3ccbb3
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77487
Commit-Queue: Bob Beck <bbe@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2025-03-25 15:21:01 -07:00
Bob Beck 9645454ea3 Accept only digital signature key usage for RCS-MLS
The leaf is only supposed to have one bit set, and
it must be Digital Signature

Bug: 394613330
Change-Id: Iefef4cbf7301f72ac2e797c9a65ff3046be39b92
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77309
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
2025-03-18 05:21:47 -07:00
Bob Beck 781eb42d34 Add mode for MLS client auth, with EKU checking
Bug: 394579214

Change-Id: Ib52af3d1672e45c5c3bb136fc6e1f63210e713b2
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/77089
Commit-Queue: Bob Beck <bbe@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2025-03-11 15:15:33 -07:00
David Benjamin 33d1049b1f Switch the license to Apache 2.0, matching OpenSSL upstream
We use the standard Apache 2.0 file header, described in "APPENDIX: How
to apply the Apache License to your work."

This was primarily automated by running:

  git ls-tree -r --name-only HEAD | xargs go run ./util/relicense.go

See go/boringssl-relicensing-triage for the results of triaging the
output of the tool.

As part of this, switch from taking fiat-crypto under MIT license to
Apache 2.0. (It is licensed under MIT OR Apache-2.0 OR BSD-1-Clause.)

The copyright_summary tool can also be used to confirm we didn't
accidentally drop any copyright lines:

  # Run before the CL
  git grep -l Copyright | xargs go run ./util/copyright_summary.go  -out /tmp/old.json
  # Run after the CL
  git grep -l Copyright | xargs go run ./util/copyright_summary.go  -compare /tmp/old.json

Bug: 364634028
Change-Id: I17c50e761e9d077a1f92e25969e50ed35e320c59
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/75852
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
2025-02-03 15:05:16 -08:00
David Benjamin 0fbc17af40 Use BSSL_NAMESPACE_{BEGIN,END} macros more consistently
The macros will participate in symbol prefixing. Not that symbol
prefixing particularly works, but let's be consistent.

Change-Id: I54043a849682e2ba2b8576b59241035e4d4effbe
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70387
Commit-Queue: David Benjamin <davidben@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
2024-08-26 17:33:18 +00:00
David Benjamin cf00b172a1 Remove remnants of Netscape Server Gated Crypto from the new verifier
Per the bug, we were waiting for the launch to stick. It has now stuck,
so finish the job.

Also fix the rebase-errors.py scripts. They stopped working after the
migration.

Update-Note: SHA-1 certificates with the Netscape SGC OID will no longer
skip their EKU check in the new verifier. By default, SHA-1
certificates are rejected, in which case this only impacts error
reporting, not which certificates are ultimately accepted.

Fixed: chromium:843735
Change-Id: I44df6a0ee80625c50e0bdf03fb775df9913fd141
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/65054
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
2024-01-04 00:03:16 +00:00
Bob Beck 257bfaa329 Move the fuzzers into the fuzz directory and make them build.
Change-Id: I9346a4bf48d756da254dc27842cd645a3a69f847
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62045
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
2023-08-17 16:12:42 +00:00
Bob Beck bc97b7a8e1 Bring in the core of chromium certificate verifier as libpki
Initially this leaves the canonical source in chrome, Additions
and fillins are committed directly, the chrome files are coverted
using the IMPORT script run from the pki directory for the moment.

The intention here is to continue frequent automatic conversion
(and avoid wholesale cosmetic changes in here for now) until
chrome converts to use these files in place of it's versions.
At that point these will become the definiative files, and the
IMPORT script can be tossed out.

A middle step along the way will be to change google3's verify.cc
in third_party/chromium_certificate_verifier to use this instead
of it's own extracted copy.

Status (and what is not done yet) being roughly tracked in README.md

Bug: chromium:1322914

Change-Id: Ibdb5479bc68985fa61ce6b10f98f31f6b3a7cbdf
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/60285
Commit-Queue: Bob Beck <bbe@google.com>
Reviewed-by: Adam Langley <agl@google.com>
2023-06-22 19:34:39 +00:00