)]}'
{
  "log": [
    {
      "commit": "a6af61ec3bc934dad387d291e2c52fe69f8f901f",
      "tree": "10ca4e0e199c2b364bbaf0fb2b246c5bb8a35230",
      "parents": [
        "5e4ae9e7b9658dfec181873c5fd6caad01665137"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@chromium.org",
        "time": "Sat Sep 19 03:15:52 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 19 03:22:03 2026"
      },
      "message": "crypto: Decouple libcrcrypto from cbor and remove unused //base dep from tpm\n\n1. Moves crypto/cose.cc (the only file in //crypto depending on\n   //components/cbor) into a separate source_set(\"cose\"). This prevents\n   libcrcrypto.so and root_store_tool from waiting on Crubit header\n   generation and libcomponents_cbor.so link completion on the build\n   critical path.\n   Because source_set(\"cose\") is linked directly into its consumers\n   rather than exported from component(\"crypto\") (where\n   CRYPTO_IMPLEMENTATION is defined), CRYPTO_EXPORT is removed from\n   PublicKeyToCoseKey() in crypto/cose.h to avoid dllimport/dllexport\n   mismatch on Windows component builds.\n2. Removes unused deps \u003d [ \"//base\" ] from rust_static_library(\"tpm\") so\n   libtpm.rlib can compile without waiting for libbase.so.TOC.\n\nTAG\u003dagy\nCONV\u003da26e41c2-8955-4e98-931a-4f1c1674383a\n\nBug: 563098656\nChange-Id: I445b6fc054d84f832bbfd5e40ab96613fef96b5a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8424841\nReviewed-by: Reilly Grant \u003creillyg@chromium.org\u003e\nCommit-Queue: Takuto Ikuta \u003ctikuta@chromium.org\u003e\nReviewed-by: Darwin Yang \u003cdarwinyang@chromium.org\u003e\nReviewed-by: Tom Sepez \u003ctsepez@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701316}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5f117d4ff6be454d62e96bb026548efb0868cf95\n"
    },
    {
      "commit": "5e4ae9e7b9658dfec181873c5fd6caad01665137",
      "tree": "e92caa1357f3d875383de59e38647d56bd1bee7a",
      "parents": [
        "e46d36cc471e2adc79b025288f7b2bc9cfd01696"
      ],
      "author": {
        "name": "Ken Buchanan",
        "email": "kenrb@chromium.org",
        "time": "Sat Sep 19 00:44:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 19 00:48:31 2026"
      },
      "message": "Record better metrics for user verifying key failures on Windows\n\nCurrently when a UV key creation or signature fails from the WinRT API,\na generic error is emitted to UMA and the specific failure is output to\nlocal logging.\n\nThis adds new metrics that distinguish between the error codes\nreturned in the status field of the API call\u0027s output. This is useful\nbecause distinguishing user cancellation from other failures could\nlet us know about unexpected failures.\n\nIt also adds some if-this-then-that lint guards to metrics in the\nfile.\n\nChange-Id: If521144ce371672bd1d4b2f86933775fabc9820f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8430478\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nAuto-Submit: Ken Buchanan \u003ckenrb@chromium.org\u003e\nReviewed-by: Matt Mueller \u003cmattm@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1701265}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 233db815e0b1926f7f78ffdd937f359bede54207\n"
    },
    {
      "commit": "e46d36cc471e2adc79b025288f7b2bc9cfd01696",
      "tree": "fe7d0c07a4f36388a007b1d8e7eb3639003ae549",
      "parents": [
        "19c402d6c5999caf0c9085e4a56ec05fba2c0552"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 17 22:59:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 23:04:59 2026"
      },
      "message": "Move crypto histograms and enums to metadata/crypto\n\nMove histograms, variants, and enums related to //crypto and\nunexportable keys (Crypto.*) from metadata/net/ to a dedicated\nmetadata/crypto/ directory. This gives the crypto component direct\nownership over its metrics definitions and separates them from\nnetworking metrics.\n\nKey changes:\n\n* Create metadata/crypto/histograms.xml and metadata/crypto/enums.xml\n  containing the Crypto.* histograms, variants, and associated enums.\n* Remove the migrated histograms, variants, and enums from\n  metadata/net/.\n* Add metadata/crypto/OWNERS and update metadata/net/OWNERS.\n* Register the new XML files in histograms_xml_files.gni.\n* Update LINT.ThenChange references in //crypto and\n  //components/unexportable_keys.\n\nNO_IFTTT\u003dMoved crypto histograms and enums to dedicated metadata/crypto/\ndirectory\n\nChange-Id: I86ba382bfa535c239a81dbdd6eabdcb46a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8407628\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Luc Nguyen \u003clucnguyen@google.com\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1700216}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7c38c27ca14e4b87397d46993f6b907cb346e6d4\n"
    },
    {
      "commit": "19c402d6c5999caf0c9085e4a56ec05fba2c0552",
      "tree": "66715bb23818557da59536090606ae0e731ceae1",
      "parents": [
        "92fadb8eeaa631d89eed32d8669b2bc0a8d2d4b9"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 17 18:19:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 18:29:24 2026"
      },
      "message": "[crypto] Make Signer/Verifier movable and migrate tests\n\nDeclare defaulted move constructors and move assignment operators for\n`crypto::sign::Signer` and `crypto::sign::Verifier`. Because both\nclasses declare out-of-line destructors, implicit move operations were\npreviously suppressed, preventing callers such as\n`net::x509_util::CreateSignatureVerifierWithCertificate` from returning\n`std::optional\u003ccrypto::sign::Verifier\u003e` by value.\n\nAlso migrate the remaining `crypto::SignatureVerifier` test cases inside\n`//crypto`:\n\n- Move the certificate signature verification test (`BasicTest`) and\n  OpenSSL RSA-PSS test vectors (`VerifyRSAPSS`, including salt-length\n  mismatch rejection) from `crypto/signature_verifier_unittest.cc` to\n  `crypto/sign_unittest.cc`.\n- Migrate `crypto/unexportable_key_unittest.cc` and\n  `crypto/user_verifying_key_mac_unittest.mm` to use\n  `crypto::keypair::PublicKey::FromSubjectPublicKeyInfo` and one-shot\n  `crypto::sign::Verify`.\n\nBug: 406190025\nChange-Id: Ia46c94f591662379f1cad2cb1755ee7c6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8425699\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699972}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8353454435757446093e2fbf4c3831cd578a60de\n"
    },
    {
      "commit": "92fadb8eeaa631d89eed32d8669b2bc0a8d2d4b9",
      "tree": "a442ce11ade255e7d27ad26728f16c4484cc7fd9",
      "parents": [
        "785f850f63a54143e9b9dd75b2f7c9fc56a5cd5d"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 17 15:39:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 15:52:40 2026"
      },
      "message": "[crypto] Fix missing ECC SRK and noDA on attestation keys\n\nCL 8291292 replaced NCrypt-based AIK generation with raw TPM2_Create\ncommands submitted directly over TBS to parent handle 0x81000009 (the\npersistent ECC Storage Root Key). This exposed two problems that the\nPlatform Crypto Provider (PCP) used to handle on our behalf.\n\nFirst, 0x81000009 is provisioned lazily and only on a best effort basis.\nPCPKsp!GetEccSrk derives the key with TPM2_CreatePrimary and then tries\nto persist it with TPM2_EvictControl, but when that fails it simply\nkeeps using the transient object. NCrypt therefore keeps working\nindefinitely on machines where the handle never materializes, while a\nraw TPM2_Create cannot, because the command has to name its parent. It\nfails immediately with TPM_RC_HANDLE, which is the regression in\nCrypto.TPMOperation.NewAttestationKeyCreationECDSA.\n\nThis change derives the SRK as a transient object with\nTPM2_CreatePrimary and creates the AIK under that instead. A primary key\nis derived deterministically from the hierarchy\u0027s seed and the template,\nso this reproduces exactly the key PCP would have persisted: on hardware\nthe public area is byte for byte identical to the one at 0x81000009, and\nPCP accepts the resulting AIK on import. The persistent handle stays a\nfast path rather than a requirement.\n\nProvisioning the SRK through NCrypt and retrying was considered and\nrejected. The startup probe that reports the metric above creates an\nECDSA key through NCrypt immediately before creating the attestation\nkey, so the affected population already performs the very operation that\nis supposed to trigger provisioning, and the handle still is not there.\n\nSecond, the hand-built TPM2_Create template omitted the noDA object\nattribute. The AIK is created with an empty authValue, so there is no\nsecret for dictionary attack protection to guard, but an object that is\nnot DA exempt cannot be authorized at all while the TPM is in dictionary\nattack lockout: it fails with TPM_RC_LOCKOUT even when its authValue is\nempty. Setting noDA matches the attributes of the attestation key that\nthe platform provisions for itself.\n\nSpecifically, this change:\n\n- Adds crypto::tpm::IsHandleError() to identify TPM responses reporting\n  a nonexistent handle (0x08B, 0x18B, and 0x910), covering all three\n  encodings observed in the field.\n- Adds CreateAikUnderTransientSrk(), chained onto ParseCreateResponse()\n  via or_else(), which derives the transient SRK with the\n  TPM2_CreatePrimary support added in the parent CLs, rebuilds\n  TPM2_Create under it, and flushes the transient object on every exit\n  path.\n- Records the recovery outcome to a single enumerated histogram so every\n  attempt is accounted for, including transport failures.\n- Adds noDA (0x400) to AIK_OBJECT_ATTRIBUTES, changing it from\n  0x00050072 to 0x00050472. Existing wrapped keys are unaffected; the\n  new attributes apply only to newly created keys.\n\nFixed: 561406666\nChange-Id: I8c6a4fcbd80dca437e0c1abeadca7b216a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8398731\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699834}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9f4bb7c287e08a14c141e27f31058b0b27f0bbde\n"
    },
    {
      "commit": "785f850f63a54143e9b9dd75b2f7c9fc56a5cd5d",
      "tree": "c1c7aaee95bbb91800aee70e7625578b65618294",
      "parents": [
        "4287db2a1293521df247faae9517dec5cbe976fd"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 17 15:16:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 15:26:27 2026"
      },
      "message": "[crypto] Expose TPM2_CreatePrimary through the C++ TPM parser\n\nWires the Rust TPM2_CreatePrimary builder and parser into the C++ API in\n//crypto/tpm_parser.h, following the shape of the existing commands:\n\n- A TpmCommand::kCreatePrimary enumerator, which also enables the\n  Crypto.TPMOperation.Win.Tpm{Command}Parse.Result and\n  Tpm{Command}Response.TpmResponseCode metrics for the command through\n  the existing TpmCommand variants expansion.\n- A CreatePrimaryResponse struct carrying the handle of the transient\n  primary object.\n- BuildCreatePrimarySrkCommand() and ParseCreatePrimaryResponse().\n\nTpmCommandToOperation() in unexportable_key_win.cc switches exhaustively\nover TpmCommand, so it has to handle the new enumerator. It is\nattributed to kNewAttestationKeyCreation, which is what the command will\nbe used for.\n\nNo behavior change: nothing calls this yet.\n\nBug: 561406666\nChange-Id: If826608547d4cc10bcfb938be7e17beb6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8393720\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1699818}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a625b2dd6759d7f8131c9d032d0ca2f14bd56a38\n"
    },
    {
      "commit": "4287db2a1293521df247faae9517dec5cbe976fd",
      "tree": "0aeff58dd203d0d9eb2ca9bed018afcf84b9aa8c",
      "parents": [
        "5ed37ad6accc8fc4fb94b3f4ff85718dc19cdde0"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 15 19:38:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 19:46:04 2026"
      },
      "message": "[crypto] Fix CertifyFailsForSoftwareSigningKey test\n\nPreviously, UnexportableKeyTest.CertifyFailsForSoftwareSigningKey\nexpected Crypto.TPMOperation.Win.TpmCertifyExtractProperty.Result to be\nlogged when key certification failed on a software signing key. After\nWindows key certification migrated to NCryptCreateClaim in\nhttps://crrev.com/c/8354224, TpmCertifyExtractProperty.Result is no\nlonger emitted and failures instead record to\nCrypto.TPMOperation.Win.KeyCertification{SignatureAlgorithm}.Error. This\ncaused the test to fail on win11-arm64-rel-tests where hardware TPM\nsupport is available.\n\nThis CL updates the histogram expectation to check\nCrypto.TPMOperation.Win.KeyCertification{SignatureAlgorithm}.Error and\nre-enables the test on Windows ARM64.\n\nCq-Include-Trybots: luci.chromium.try:win-arm64-rel\nFixed: 558952298\nChange-Id: I3a76be8cab9acb93e5a129fb7e227b376a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8406927\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1698310}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b68dd2405a7655ecd1c4711cf4d5facbd9779644\n"
    },
    {
      "commit": "5ed37ad6accc8fc4fb94b3f4ff85718dc19cdde0",
      "tree": "6eec06ab3881b6156e2bba0dc78f48495fe9d1e6",
      "parents": [
        "ae48c1217691abc5e73091a94079fc397d1e6071"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 15 09:24:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 09:33:39 2026"
      },
      "message": "[crypto] Add TPM2_CreatePrimary support to //crypto/tpm.rs\n\nAdds a builder and a parser for TPM2_CreatePrimary, using the TCG ECC\nstorage primary template (P-256, AES-128-CFB symmetric parameters, no\nauthPolicy) under the owner hierarchy. This is the template the Windows\nPlatform Crypto Provider uses to derive the key it persists at handle\n0x81000009, so the object it produces is bit for bit identical to that\nkey on hardware.\n\nBecause a primary key is derived deterministically from the hierarchy\nseed and the template, the template is fixed and the builder takes no\nparameters. The created object is transient; the response parser only\nextracts its handle, which the caller has to release with the already\nexisting TPM2_FlushContext support.\n\nNo behavior change: nothing calls this yet.\n\nBug: 561406666\nChange-Id: I69080441c3aead9c7a7ef0b80406e0326a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8393719\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1697936}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: df31de333c504f5859c51de4db3d3f75eda5432f\n"
    },
    {
      "commit": "ae48c1217691abc5e73091a94079fc397d1e6071",
      "tree": "ce4862398a3cbc75eca182f09d169a9e7825f598",
      "parents": [
        "a37d37f0749d6e7ba2347844632ff30c4acd6044"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Sep 14 10:25:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 14 10:35:14 2026"
      },
      "message": "[base] Add ReadNativeEndian to base::SpanReader\n\nbase::SpanReader provides methods for reading primitive integers and\nfloating-point numbers, but previously lacked a generic helper for\ndeserializing arbitrary trivially copyable objects (such as C-style\nstructures) in native endian byte order. Call sites had to manually\nsplit spans, copy into an intermediate array, and use bit_cast.\n\nThis CL adds ReadNativeEndian\u003cU\u003e() to base::SpanReader, enabling callers\nto safely read trivially copyable types from byte buffers.\n\nSpecifically:\n- Adds ReadNativeEndian\u003cU\u003e() constrained by std::is_trivially_copyable_v\n  to base::SpanReader.\n- Adds compile-time and runtime unit tests in span_reader_unittest.cc.\n- Adopts ReadNativeEndian in crypto/unexportable_key_win.cc, removing\n  the redundant local Read\u003cT\u003e helper.\n\nBug: 481630807\nChange-Id: I69c603bf8d20e364eeacea2bdedbf6086a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8371583\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1697160}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3fcaf85c5fc4ee24c05f1f060470455e2d979ac3\n"
    },
    {
      "commit": "a37d37f0749d6e7ba2347844632ff30c4acd6044",
      "tree": "d73b4414fb0bb33eccce946517dce35a521f8057",
      "parents": [
        "1da4896d8e0e4881576336e04c68a0e910eb2a30"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 10 17:54:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 18:02:57 2026"
      },
      "message": "[crypto] Hash challenge and include SPKI in Secure Enclave attestation\n\nFor Secure Enclave attestation (Format::kSecureEnclave), the attestation\nstatement is defined as the concatenation of the SHA-256 hash of the\nserver\u0027s challenge and the SHA-256 hash of the signing key\u0027s Subject\nPublicKey Info (SPKI).\n\nThis CL updates AttestationKeyApple::CertifySlowly to hash the challenge\nwhen constructing the statement, and sets the AttestationStatement\u0027s\n`subject_key` to the signing key\u0027s SPKI.\n\nBug: 481630807\nChange-Id: I740cf48d0f37b3429f44b7eed3032b616a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8379486\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1695510}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1bd09fa0274125ca0b1c3a1b30c03bc6a55d1dd8\n"
    },
    {
      "commit": "1da4896d8e0e4881576336e04c68a0e910eb2a30",
      "tree": "40dcf7677892089d60e636a39381eae1a2320b95",
      "parents": [
        "30b9208f2f22e0accfecd15f5294a33bc9205fa1"
      ],
      "author": {
        "name": "Matt Mueller",
        "email": "mattm@chromium.org",
        "time": "Thu Sep 10 00:59:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 10 01:10:24 2026"
      },
      "message": "Clarify comment about loading the NSS libnssckbi.so module.\n\nBug: 40918599\nChange-Id: I70358d9d53ffb6a43fd2d53789cc21e2eeb4ab42\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8384797\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1695061}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d8715e46fc2792f5d4e5a24de733b7bb6046e00d\n"
    },
    {
      "commit": "30b9208f2f22e0accfecd15f5294a33bc9205fa1",
      "tree": "68b106ece51de2b9c70f0405811c7d2f7bdc0384",
      "parents": [
        "8a028fdbfb1d1cdc5aa5fb9d73432480c6fd3dd2"
      ],
      "author": {
        "name": "Matt Mueller",
        "email": "mattm@chromium.org",
        "time": "Wed Sep 09 21:39:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 21:50:06 2026"
      },
      "message": "Don\u0027t build TrustStoreNSS on ChromeOS\n\nChromeOS doesn\u0027t use NSS for storing server certificate settings and the\nmigration code has been removed, so there is no need to build this on\nChromeOS anymore.\n\nBug: 390333881\nChange-Id: I56143b4f71c74f6827a73e131f66f62b61cbbc4b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8308823\nReviewed-by: Hubert Chao \u003chchao@chromium.org\u003e\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694889}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: dcba1b2b79ba7230ad5fc3b7aa78a1775904db53\n"
    },
    {
      "commit": "8a028fdbfb1d1cdc5aa5fb9d73432480c6fd3dd2",
      "tree": "c56211c424098446e9204a5874edf6683eb2131f",
      "parents": [
        "8a0746c7916d3346883e0dbd36112805cca99425"
      ],
      "author": {
        "name": "Matt Mueller",
        "email": "mattm@chromium.org",
        "time": "Wed Sep 09 17:59:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 18:10:26 2026"
      },
      "message": "Split use_nss_certs build flag by client/server auth uses\n\nThere should be no behavior changes in this CL, this is in preparation\nfor turning off NSS server cert use on ChromeOS in a followup CL.\n\nBug: 390333881\nCq-Include-Trybots: luci.chromium.try:linux-cast-x64-rel\nChange-Id: Ife604e2172bc49a21d2b5e6c8846f2ac812077b9\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8348877\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nReviewed-by: Joe Downing \u003cjoedow@chromium.org\u003e\nReviewed-by: Carlos IL \u003ccarlosil@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694729}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3809ff56a2fde3375a3f1eae7764cef60e102286\n"
    },
    {
      "commit": "8a0746c7916d3346883e0dbd36112805cca99425",
      "tree": "9dccb45c37e7cc71e6619c37bff01e752e2ea7e3",
      "parents": [
        "e5eeac8358d9a5cf2e6cc3df3be16d805727bd19"
      ],
      "author": {
        "name": "HuanPo Lin",
        "email": "robertlin@chromium.org",
        "time": "Wed Sep 09 05:26:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 09 05:32:33 2026"
      },
      "message": "gardener: Disable UnexportableKeyTest.CertifyFailsForSoftwareSigningKey\n\nBug: 558952298\nChange-Id: I744e9090a030f28634dabfaf86a28fde0654c15f\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8376621\nCommit-Queue: Huanpo Lin \u003crobertlin@chromium.org\u003e\nOwners-Override: Huanpo Lin \u003crobertlin@chromium.org\u003e\nReviewed-by: Taiyo Mizuhashi \u003ctaiyo@chromium.org\u003e\nReviewed-by: Takashi Nakayama \u003ctnak@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694347}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5e1c20bae0f5492645241e9175b3b958a6db46aa\n"
    },
    {
      "commit": "e5eeac8358d9a5cf2e6cc3df3be16d805727bd19",
      "tree": "0e854f5a5fb394d282f0ce0e80a8ac1191aae5c9",
      "parents": [
        "7a9e9387fb216c1f4c23c7b36b1db3ca67aa5a62"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 21:51:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 21:59:21 2026"
      },
      "message": "[crypto] Add TPMT_PUBLIC to software attestation keys\n\nTo match TPM 2.0 hardware attestation behavior (where the certified\nsubject key is returned as a TPMT_PUBLIC binary structure), update\nSoftwareAttestationKey::CertifySlowly to construct a TPMT_PUBLIC\nstructure for ECDSA P-256 and RSA 2048 signing keys.\n\nIn addition, this CL consolidates and updates attestation unit tests\nacross hardware TPM and software/fake providers:\n\n* Constructs TPMT_PUBLIC for EC and RSA public keys in\n  SoftwareAttestationKey::CertifySlowly and populates subject_key.\n* Uses the subject key\u0027s digest as the certified name in\n  CreateTpm2bAttestationStatement.\n* Consolidates CertifySlowlySucceeds and the arbitrary challenge test\n  into a single parameterized CertifySlowly test that validates the\n  TPMS_ATTEST structure, challenge digest, certified name, signature\n  algorithm, and matches TPMT_PUBLIC parameters against SPKI.\n\nBug: 481630807\nChange-Id: If2907fa61b15b8e828626299998169e66a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8354225\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694091}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 799fee05adcb52adcd06534072071728fe752598\n"
    },
    {
      "commit": "7a9e9387fb216c1f4c23c7b36b1db3ca67aa5a62",
      "tree": "93269073294b93b584f78dbd0e2b2774dad3824f",
      "parents": [
        "366189af5dc81c627733a7d37eb993e43ab9c7e1"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 21:50:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 21:58:22 2026"
      },
      "message": "[crypto] Remove obsolete TPM2_Certify machinery\n\nNow that Windows attestation uses NCryptCreateClaim, manual TPM2_Certify\ncommand construction, response parsing, and verification are no longer\nneeded.\n\nThis CL removes the obsolete TPM2_Certify machinery and cleans up\nassociated metrics:\n\n- Removes BuildCertifyCommand, ParseCertifyResponse, and CertifyResponse\n  from Rust (tpm.rs) and C++ bindings (tpm_parser).\n- Drops obsolete parse errors (BadMagicNumber, ChallengeMismatch) from\n  Rust and C++, reserving their numeric values as (Obsolete) in\n  enums.xml.\n- Drops TpmCommand::kCertify, removes obsolete TPM2_Certify verification\n  and execution histograms in histograms.xml, and deletes unreferenced\n  TpmAlgorithm and TpmCertifyVerifyResult enums in enums.xml.\n- Removes associated unit tests in tpm_unittest.rs,\n  tpm_parser_unittest.cc, and unexportable_key_unittest.cc.\n\nOBSOLETE_HISTOGRAMS\u003dTPM2_Certify verification and TBS command execution have been replaced by NCryptCreateClaim.\n\nBug: 481630807\nChange-Id: Ic5f205350ff0a2215eb980208b0f588a6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8354226\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694090}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e27f0e4bc1ed13a4dc5b3514c108b8eac70361da\n"
    },
    {
      "commit": "366189af5dc81c627733a7d37eb993e43ab9c7e1",
      "tree": "06c5d7a4e4cf359f7a96987c7f1ff1aa664de2db",
      "parents": [
        "9429b52a0af794462e3a47a3aa446a3ef5e005ce"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 21:49:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 21:57:16 2026"
      },
      "message": "[crypto] Certify Windows keys via NCryptCreateClaim\n\nPreviously, Windows attestation key certification in\nAttestationKeyWin::CertifySlowly manually assembled and dispatched\nlow-level TPM2_Certify commands over TBS (TPM Base Services). While\nsigning operations still require TBS communication due to Windows NCrypt\nKSP restrictions on restricted signing keys, key certification can be\ndelegated directly to native Windows CNG APIs via NCryptCreateClaim.\n\nThis CL updates AttestationKeyWin::CertifySlowly to use\nNCryptCreateClaim with NCRYPT_CLAIM_WEB_AUTH_SUBJECT_ONLY.\n\nSpecifically, this change:\n\n- Replaces manual TBS command building in CertifySlowly with\n  NCryptCreateClaim using NCRYPTBUFFER_CLAIM_KEYATTESTATION_NONCE.\n- Parses NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT (\u0027KAWA\u0027) claim\n  blobs to extract TPMS_ATTEST, signature, and TPMT_PUBLIC (subject\n  key).\n- Converts raw signature bytes into the standardized TPM 2.0\n  TPMT_SIGNATURE binary structure expected by callers and verification\n  routines.\n- Removes the unused VerifyAndLogTpmSignature helper.\n\nBug: 481630807\nChange-Id: If99a0e521cf0e861ffd96070209f33406a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8354224\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694089}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 420a23d9712a0a4f960b14a769c57f3d96a71066\n"
    },
    {
      "commit": "9429b52a0af794462e3a47a3aa446a3ef5e005ce",
      "tree": "0c0bdc27c8f5b727dcf4c425e8f6312e34261c2c",
      "parents": [
        "c5fac5b62e353682c6b083bd6d3392d8e4c79f9d"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 20:56:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 21:06:36 2026"
      },
      "message": "[crypto] Add Hash(HashKind) overloads returning std::vector\n\nCallers performing one-shot hashing with dynamic or parameter-driven\nhash algorithms currently have to use the `void Hash(HashKind, ...)`\noverload that requires pre-allocating an output buffer and querying\n`DigestSizeForHashKind()`. For call sites that need an owned container,\nthis introduces boilerplate.\n\nThis change adds `Hash(HashKind, ...)` overloads taking either\n`base::span\u003cconst uint8_t\u003e` or `std::string_view` and returning an owned\n`std::vector\u003cuint8_t\u003e` sized to the corresponding digest. Comprehensive\nunit tests and compile-time digest size assertions are also added for\nall supported hash algorithms.\n\nBug: 374310081\nChange-Id: I417a7f4db6ff717162b8a42e7dc4bbd96a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8350328\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1694040}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8a0c3112e22aa5965d433bd75f81f8e1dbc78fdc\n"
    },
    {
      "commit": "c5fac5b62e353682c6b083bd6d3392d8e4c79f9d",
      "tree": "db2432ba4bb990fcee55adb00a95a4ad8fef630d",
      "parents": [
        "4627e375f64849a57313c5671f9300fd1b9ecab0"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 18:42:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 18:51:30 2026"
      },
      "message": "[crypto] Remove SignatureAlgorithm alias from SignatureVerifier\n\nRemove the deprecated SignatureAlgorithm type alias and using enum\nsign::SignatureKind from SignatureVerifier.\n\nAll remaining call sites referencing the alias or its imported enum\nconstants now use crypto::sign::SignatureKind directly, preventing\nbacksliding.\n\nBug: 406190025\nChange-Id: I1d93fb47df7e052c3f6241938e5ba3ba6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8366129\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Daniel Cheng \u003cdcheng@chromium.org\u003e\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1693956}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 7de03ddbb644dcb57506fb218b5be07b5612e425\n"
    },
    {
      "commit": "4627e375f64849a57313c5671f9300fd1b9ecab0",
      "tree": "edfdbd30450d30ef5b925a258ba0caf18fdf1b82",
      "parents": [
        "9b031787f6b9c8b639a0b14c11bd3cc2c5b86ee9"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Sep 08 17:20:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 17:45:42 2026"
      },
      "message": "Update comments explaining Windows TPM ECC SRK handle.\n\nThis change updates the documentation in unexportable_key_win.cc to\nprovide precise technical details on how the Windows Platform Crypto\nProvider (PCPKsp.dll) manages and uses the ECC Storage Root Key (SRK) at\nhandle 0x81000009, replacing the previous empirical explanation.\n\nChange-Id: Ib374cc4232bce41558948867c8044c51a4db8094\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8362827\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1693883}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8e917262e6f2a8a2ae9aad9842751480df4f3bfc\n"
    },
    {
      "commit": "9b031787f6b9c8b639a0b14c11bd3cc2c5b86ee9",
      "tree": "3fb485d5423fc0d18e4cc43750ad3496ece629dc",
      "parents": [
        "2659aec19f8b2486646511920fdba37b9705d7b0"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Fri Sep 04 17:09:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 17:16:27 2026"
      },
      "message": "[crypto] Migrate SignatureAlgorithm to sign::SignatureKind\n\nMigrate callers of crypto::SignatureVerifier::SignatureAlgorithm across\nthe codebase to crypto::sign::SignatureKind and update include headers\nfrom crypto/signature_verifier.h to crypto/sign.h where appropriate.\n\nThis is a mechanical refactoring in preparation for removing\ncrypto::SignatureVerifier. Verification logic migrations to\ncrypto::sign::Verify / crypto::sign::Verifier are left to follow-up CLs.\n\nBug: 406190025\nChange-Id: I25100e480866d5be4bb80ee1ec0dd37b6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8353205\nOwners-Override: Daniel Cheng \u003cdcheng@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nCr-Commit-Position: refs/heads/main@{#1692555}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8c07454d98be17b42e5c7b272163f4e9ff021d71\n"
    },
    {
      "commit": "2659aec19f8b2486646511920fdba37b9705d7b0",
      "tree": "acda2d7f76ec6845464e04667a6609d25bd0e881",
      "parents": [
        "dbaf032983c7b33c0598390577fb68ef442ffdc2"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Sep 03 20:10:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 20:15:50 2026"
      },
      "message": "crypto: update README\n\nI declare the refactor finished enough: all the new APIs exist, and\nthe old ones that we haven\u0027t yet gotten rid of are marked deprecated.\n\nBug: 367888389\nChange-Id: If38ff8e49f826a71c109a05c714f369d5ea2abed\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8350012\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1691877}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 679d1dc864f6016700597fdf316aa55a81c5e387\n"
    },
    {
      "commit": "dbaf032983c7b33c0598390577fb68ef442ffdc2",
      "tree": "f72553a545e0131a82b1459cd3284bdd886440f8",
      "parents": [
        "119eb6cb8ab673e295f2b4bacadb441c5f4efbad"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Sep 03 09:07:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 09:11:56 2026"
      },
      "message": "[crypto] Alias SignatureVerifier::SignatureAlgorithm to sign::SignatureKind\n\nTo allow incremental migration across dozens of downstream components,\nthis CL aliases crypto::SignatureVerifier::SignatureAlgorithm to\ncrypto::sign::SignatureKind and brings its enumerators into scope with\n`using enum sign::SignatureKind;`.\n\nNO_IFTTT\u003dcrypto/sign.h already defines all SignatureKind enumerators\nbeing mirrored in mojom\n\nBug: 406190025\nChange-Id: I848373b98ea389ab5674bd2f3504c51e6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8308718\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1691412}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 9b1b4d508e748e342d9ef8e83739d2c44986ca82\n"
    },
    {
      "commit": "119eb6cb8ab673e295f2b4bacadb441c5f4efbad",
      "tree": "09d30531d0c23ea16bd9a4878cab28dbc9c28806",
      "parents": [
        "b3c1e81a6cd56e169d2feea6f59e06b24b8e0546"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Sep 02 15:40:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:47:38 2026"
      },
      "message": "[crypto] Add subject_key to AttestationStatement\n\nHardware key certification returns an attestation statement that\ncertifies the name of a key rather than directly embedding its public\nkey. To allow callers and consumers to bind and verify the attestation\nstatement against the certified key, the public key representation must\nbe carried alongside the certification data.\n\nThis CL adds a subject_key byte array to AttestationStatement and\nplumbs it through the unexportable key service Mojom traits. Follow-up\nchanges will populate this field with the TPMT_PUBLIC structure for\nTPM-backed keys.\n\nBug: 481630807\nChange-Id: I79d3cae4e734319403dd9a91d76d55ab6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8279652\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1690777}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b149a6a10d23d9151496a963db60ed70ca39425f\n"
    },
    {
      "commit": "b3c1e81a6cd56e169d2feea6f59e06b24b8e0546",
      "tree": "b9b9b4a42c9c4f837c85d746a735b778845a4e26",
      "parents": [
        "322feb63f37253886438a2ce431eca6af8b40f52"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Sep 02 15:28:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:37:54 2026"
      },
      "message": "[crypto] Generate Windows attestation keys via TPM2_Create\n\nCurrently, Windows Attestation Identity Keys (AIKs) are generated using\nthe Platform Crypto Provider (PCP) via NCryptCreatePersistedKey with the\nNCRYPT_PCP_IDENTITY_KEY property. This approach restricts key parameters\nand prevents the proper use of ECDSA attestation keys, necessitating\nworkarounds like SHA-1 fallbacks for P-256 keys.\n\nThis patch implements direct AIK generation by issuing raw TPM2_Create\ncommands through the TPM Base Services (TBS) API. The response is parsed\nand converted into a Windows PCP opaque key blob (BCRYPT_OPAQUE_KEY_BLOB\n/ PCP_KEY_BLOB_WIN8). This blob is then loaded into an NCryptKey handle\nvia NCryptImportKey.\n\nBy bypassing the high-level NCrypt creation flow, this implementation\nprovides exact control over key templates and removes the previous\nlimitations, cleanly enabling ECDSA_SHA256 attestation keys and allowing\nthe removal of previous SHA-1 signing workarounds.\n\nBug: 531590259\nChange-Id: I17e6423ccf1e7d53337e402901f1f77d6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8291292\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1690761}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 32eacb11e7809aa24c735e2e90c5af6acb6cf338\n"
    },
    {
      "commit": "322feb63f37253886438a2ce431eca6af8b40f52",
      "tree": "48190a28f524366d0422a272581a3f355328d93e",
      "parents": [
        "5f0e8e70b325eea5574ee50e40ba64dc3381ae85"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Sep 02 06:15:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 06:20:10 2026"
      },
      "message": "[crypto] Clean up and modernize TPM parser and helper APIs\n\nSimplify the TPM parser and helper APIs by removing redundant arguments,\nhardcoding fixed values, and centralizing type conversion utilities.\nThis reduces boilerplate and modernizes the cryptography interfaces.\n\nSpecific changes include:\n\n- Remove `TPM_RH_ENDORSEMENT` from `TpmRh` in `tpm.rs`, as Attestation\n  Identity Keys (AIKs) use the Storage hierarchy under the SRK.\n- Simplify `build_hash_command`, `build_sequence_complete_command`, and\n  `build_sign_command` by dropping redundant hierarchy and scheme\n  arguments. They now default to `TPM_RH_OWNER` and `TPM_ALG_NULL`.\n- Update C++ wrappers to accept modern `crypto::hash::HashKind` instead\n  of raw TPM algorithm identifiers.\n\nBug: 531590259\nChange-Id: I6b5c701baea32a1c58e4bf35ea303e0b6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8305934\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1690480}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d8fe4d4d4c8c39ba001263b274f485ca669da378\n"
    },
    {
      "commit": "5f0e8e70b325eea5574ee50e40ba64dc3381ae85",
      "tree": "5e3cbc48c3aed0861002d458b858184ab39bb490",
      "parents": [
        "447056db441b6ea57121c3894996bfb2b175b975"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Tue Sep 01 20:02:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 20:08:47 2026"
      },
      "message": "crypto/: mention crypto/kem in README\n\nBug: 549900442\nChange-Id: I84a1a96ce31c4b1abcee80ef305f25159c49db20\nFixed: 549892109\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8329368\nReviewed-by: Matt Mueller \u003cmattm@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1690039}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d03f251feee7a70c24ea100abfc9a68e763616c6\n"
    },
    {
      "commit": "447056db441b6ea57121c3894996bfb2b175b975",
      "tree": "2aa4611efcf1f749c59faee941b87a6cd45a7a80",
      "parents": [
        "c748490d98056f8bdea5f3d051ccb6c5ca9fab1f"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Mon Aug 31 21:37:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 21:42:56 2026"
      },
      "message": "crypto/kem: add\n\nThis change adds two new functions:\n\n  secret? crypto::kem::Decapsulate(mech, privkey, ciphertext)\n  (ciphertext, secret) crypto::kem::Encapsulate(mech, pubkey)\n\nCurrently, the only supported KEM is ML-KEM-768.\n\nChange-Id: Id4dd160f440cc4e4821b7c97cc243056d1a3efa9\nBug: 549892109\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8272145\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1689285}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f6638c6529fbb868db2b217ba216de66a7f672a8\n"
    },
    {
      "commit": "c748490d98056f8bdea5f3d051ccb6c5ca9fab1f",
      "tree": "b38784e980db2d5012cb4f9bfae7ad3544c1f193",
      "parents": [
        "d6be6da23888a0278c713f4468ee8b7e8347da12"
      ],
      "author": {
        "name": "Sorin Jianu",
        "email": "sorin@chromium.org",
        "time": "Mon Aug 31 21:31:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 21:37:00 2026"
      },
      "message": "component_updater: fix iwyu in metadata_table_chromeos.cc\n\nBug: 430344933\nChange-Id: Ieb90ce8499b432d8bf377ba69ee1f4eff4f23a9a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8298978\nReviewed-by: Xiaoling Bao \u003cxiaolingbao@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: Sorin Jianu \u003csorin@chromium.org\u003e\nCommit-Queue: Sorin Jianu \u003csorin@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1689278}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ead0de9f4af6169d91a600407e9d42a1fc480ddb\n"
    },
    {
      "commit": "d6be6da23888a0278c713f4468ee8b7e8347da12",
      "tree": "83a3271cdb51fd135f769d1c3eef3cb6a08e0840",
      "parents": [
        "45a48d801492028d665dc2158d8a649707d13150"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Aug 31 19:58:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 20:26:11 2026"
      },
      "message": "[crypto] Remove unused openssl/evp.h from crypto/sign.h\n\ncrypto/sign.h only uses bssl::UniquePtr\u003cEVP_MD_CTX\u003e for member variables\nin Signer and Verifier. Because openssl/base.h provides the forward\ndeclaration for EVP_MD_CTX and the Signer/Verifier destructors are\ndefined out-of-line in sign.cc, the heavy openssl/evp.h header is not\nneeded in the header file.\n\nRemoving this header reduces preprocessed compile size for all\ntranslation units including crypto/sign.h.\n\nBug: 406190025\nChange-Id: Ic335f774bd3a4c8fd3692f061b0487576a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8320867\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1689175}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 41e70dbc9de7b1305f51ba1481d4185ecd71ca70\n"
    },
    {
      "commit": "45a48d801492028d665dc2158d8a649707d13150",
      "tree": "3d61c2a2cdcf0252571c9149ea51f6a225a91a1b",
      "parents": [
        "7b9391a82a4989150c4f690918a1d15e8ab5e357"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Aug 27 16:02:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 16:09:50 2026"
      },
      "message": "[crypto] Expose TPM2_Create C++ bindings and UMA metrics\n\nThis change introduces C++ bindings for constructing TPM2_Create\ncommands and parsing their corresponding responses. This functionality\nis necessary for implementing Windows Attestation Identity Key (AIK)\ncreation, which supports Device Bound Session Credentials (DBSC).\n\nSpecifically, this commit:\n\n- Adds `BuildCreateAikCommand` to map standard cryptographic signature\n  algorithms (like RSA PKCS1/PSS and ECDSA) to their TPM equivalents and\n  generate the command payload.\n- Adds `ParseCreateResponse` to extract the serialized public and\n  private key blobs from a successful TPM2_Create response.\n- Exposes the `TPM2_Create` command in the `TpmCommand` enum and\n  registers it in the net histograms for UMA metric tracking.\n\nBug: 531590259\nChange-Id: I92369094a09f2a03bf1ae17fb5c8af2c6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8291291\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1687283}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 139e52253cdced788c99f709010db3371d27ad63\n"
    },
    {
      "commit": "7b9391a82a4989150c4f690918a1d15e8ab5e357",
      "tree": "20bf645395f523216add409e3dbbfbeb9d6c624a",
      "parents": [
        "ce184620de38fbf1a8076621e381d6a2dc03ccca"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Aug 27 14:46:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 14:53:12 2026"
      },
      "message": "[crypto] Add TPM2_Create command builder and parser\n\nOn Windows, the NCrypt API does not support direct generation of ES256\nAttestation Identity Keys (AIKs). AIKs require on-TPM hashing to produce\na valid creation ticket, whereas NCrypt performs hashing in software for\nstandard keys.\n\nTo work around this limitation, this change bypasses NCrypt for the\ninitial key generation by implementing the TPM2_Create command directly.\nOnce the key blob is generated, it can be safely imported back into\nNCrypt for subsequent session operations.\n\nSpecifically, this patch adds:\n\n- build_create_aik_command: Serializes a TPM2_Create request tailored\n  for AIKs, supporting RSA and ECC key types with the appropriate\n  attributes.\n- parse_create_response: Deserializes the TPM response, extracts the\n  public and private key blobs (out_public and out_private), and\n  validates the creation ticket.\n\nBug: 531590259\nChange-Id: I6331bef8efca278d11efccf4924252d86a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8291290\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1687226}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 735e2321a4eeecd1de0a59df9060dd244100a6db\n"
    },
    {
      "commit": "ce184620de38fbf1a8076621e381d6a2dc03ccca",
      "tree": "8265b6abd65db87a9eeeec4e10f57f8c7dca5223",
      "parents": [
        "fa1a134aaf0d16b5bb74d38840ea4185183fe7ca"
      ],
      "author": {
        "name": "amraboelkher",
        "email": "amraboelkher@chromium.org",
        "time": "Thu Aug 27 10:17:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 10:25:20 2026"
      },
      "message": "Update docs for SelectAlgorithm thread safety constraints\n\nThis updates the SelectAlgorithm comment to explain that the synchronous\nload of ncrypt.dll only happens once per process lifetime on Windows,\nmeaning it\u0027s safe to invoke on the UI thread as long as it has been\ncalled prior (e.g. on a background thread).\n\nThat\u0027s a follow up from comment:\ncrrev.com/c//8240571/comments/242552e6_e7a7d85f\n\nBug: 530193577\nChange-Id: I4ebb9885b3b394cd444e8287c93f0fcf6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8256402\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Amr Aboelkher \u003camraboelkher@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1687083}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 312d9569995094ab226edae1a8ca3bf587573fda\n"
    },
    {
      "commit": "fa1a134aaf0d16b5bb74d38840ea4185183fe7ca",
      "tree": "66a3883745b043dd98815806d2e7ec0007f839bc",
      "parents": [
        "d7a15ebb8ada4d5f0de95dcb956bac43c7009135"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Wed Aug 26 23:29:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 23:34:11 2026"
      },
      "message": "Add ML-DSA to SSLPlatformKeyNSS\n\nNSS just added ML-DSA-support to softoken. Tested manually with NSS\nbuilt from HEAD, specifically new enough to have the fix for\nhttps://bugzilla.mozilla.org/show_bug.cgi?id\u003d2066183\n\n(Strictly speaking, NSS has had ML-DSA support in the PKCS#11 wrapper\nfor a while now. If anyone is using an ML-DSA-capable module, this code\nshould, I suspect, apply to older NSS versions. But I believe we only\nimport to softoken, so it\u0027s fine that the issue above was only just\nfixed.)\n\nBug: 536164653\nChange-Id: Ic00d9e7c3c2518a1e10658714190d21034aa481a\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8275479\nReviewed-by: Matt Mueller \u003cmattm@chromium.org\u003e\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nAuto-Submit: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1686769}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3c8c5f9f265b552be7430062606bcde86c17a77d\n"
    },
    {
      "commit": "d7a15ebb8ada4d5f0de95dcb956bac43c7009135",
      "tree": "8313c9ce40a601afabef621162f102461c668454",
      "parents": [
        "72ec6544a77850aa21d0447064e398bb5e6cd31f"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Wed Aug 26 20:56:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:22:40 2026"
      },
      "message": "crypto/keypair: remove P-521 support\n\nThere are no users for it, and we don\u0027t want to encourage new users\nof P-521 given our post-quantum transition.\n\nBug: 549900442\nChange-Id: I009adb2de1a2fbd75a43fa8eee05923fbde74691\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8258467\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1686655}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0c2584975f26bc9ee8948bc9a5e89883c2908977\n"
    },
    {
      "commit": "72ec6544a77850aa21d0447064e398bb5e6cd31f",
      "tree": "4eff58f9144506f5afd271b78146302faa8fe0c9",
      "parents": [
        "5ba4a9e4ebe056dbfcf4d17ebc9169fa4577d42d"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Wed Aug 26 20:48:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 20:53:59 2026"
      },
      "message": "component-updater: use crypto/obsolete/sha1 instead of base/hash/sha1\n\nThe base/hash/sha1 API is going away and call sites that need SHA1\nshould use crypto/obsolete/sha1 instead. The new API has identical\nbehavior, but code needs to be friended to call it, so this change\nmakes component_updater::HashUsername a friend.\n\nBug: 430344933\nChange-Id: I22e0b33959c59d366f752d3166bb318794fe4539\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8274250\nCommit-Queue: Sorin Jianu \u003csorin@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Sorin Jianu \u003csorin@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1686645}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 425d3caf2b276946034af7923d95fcfddf85b427\n"
    },
    {
      "commit": "5ba4a9e4ebe056dbfcf4d17ebc9169fa4577d42d",
      "tree": "edcb4ad28499bf022a643d8b2506bf52415a0d43",
      "parents": [
        "97ca854491df9842023581dabc8921bfb6ac9b84"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Aug 26 11:05:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 11:15:32 2026"
      },
      "message": "[crypto] Add UMA metrics for restricted message signing\n\nPreviously, signing with an attestation key (a restricted signing key)\nwas reported using the generic message signing metric or was not\nexplicitly differentiated from regular signing operations. To properly\nsupport adding key signing capabilities to attestation keys for Device\nBound Session Credentials (DBSC), it is necessary to track these\noperations separately.\n\nThis change introduces the `kRestrictedMessageSigning` and\n`kRestrictedMessageVerify` TPM operations to explicitly track these\ncryptographic events. It maps the Windows `tpm::TpmCommand::kSign`\ncommand to the new restricted message signing operation. Furthermore, it\nenhances the TPM benchmarking logic by adding signature verification to\nensure the mathematical validity of the generated signatures.\n\nBug: 530828835\nChange-Id: I630a898c2967adf695aaa1c1f48d21ac6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8270206\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1686262}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8233e55bea8791d668d975a8129eb62174a718ea\n"
    },
    {
      "commit": "97ca854491df9842023581dabc8921bfb6ac9b84",
      "tree": "b4f89e4e7e0026b273afc754d67cbf54bec064d2",
      "parents": [
        "ea390eb6b7e16a4c1a6b01d154a0cf6ee59bfc4f"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Tue Aug 25 16:58:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 17:07:05 2026"
      },
      "message": "Switch crypto/keypair.cc to the new EVP APIs\n\nNot everything has been filled in, but we can drop a few more places\nwhere we dip into the \"low-level\" APIs.\n\nChange-Id: I9b7f85bf6f3d4a18194dd92020bdffc965bbd3b3\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8261847\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: David Benjamin \u003cdavidben@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1685670}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 72dafe4f46b47cfd05360298d996cec5d6100825\n"
    },
    {
      "commit": "ea390eb6b7e16a4c1a6b01d154a0cf6ee59bfc4f",
      "tree": "4f8c56f429ce170dbaa0c960fd8c5e25ac061c05",
      "parents": [
        "cfbf623cb0aa688e6fd8e2fa9f773dfcad511aa9"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Fri Aug 21 01:11:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 01:16:42 2026"
      },
      "message": "crypto/keypair: drop RSA-4096 generation support\n\nThere are no clients of it, and we don\u0027t want to encourage any new\nuses of RSA. If someone needs it back they can ask us :)\n\nBug: 549900442\nChange-Id: Ib087957f645bf11687daeea5512e8567190f156d\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8272333\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683593}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 19c61af0372f4c1da12018d4bb3afbd8c88fe32c\n"
    },
    {
      "commit": "cfbf623cb0aa688e6fd8e2fa9f773dfcad511aa9",
      "tree": "2894669a52b6cb39329b27fe69121172e509c159",
      "parents": [
        "d047fa0070cd33b3cb513b832a3c4a47d7fa13bc"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Aug 20 23:40:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 23:45:38 2026"
      },
      "message": "crypto: add recommended primitives to README\n\nPer discussion with davidben@.\n\nBug: 549900442\nChange-Id: I9e1718c739bafb335936d0f8c4219b03606b6c15\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8258780\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683553}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 1e06e512ac0405952432850e56198d3855cc4b56\n"
    },
    {
      "commit": "d047fa0070cd33b3cb513b832a3c4a47d7fa13bc",
      "tree": "224a1d507e346ea1239ae5c186467d15d0b563ae",
      "parents": [
        "9eb3f970184e20cfd850caf62d96b4b3f68fcb3c"
      ],
      "author": {
        "name": "Nina Satragno",
        "email": "nsatragno@chromium.org",
        "time": "Thu Aug 20 13:36:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 13:41:08 2026"
      },
      "message": "[crypto] Add Ed25519 support to PublicKeyToCoseKey\n\nImplement COSE key serialization for Ed25519 public keys in\ncrypto::PublicKeyToCoseKey.\n\nTAG\u003dagy\nCONV\u003dbbe1cd03-aa81-478a-88c2-fa4723acc8da\n\nBug: 546370268\nChange-Id: I93bdb9e79c28e4b4a65ad6777f40fae8d72002e2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8263948\nAuto-Submit: Nina Satragno \u003cnsatragno@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Nina Satragno \u003cnsatragno@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1683087}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f91edb66650aec1dd983cbfd95bee11ff76ff975\n"
    },
    {
      "commit": "9eb3f970184e20cfd850caf62d96b4b3f68fcb3c",
      "tree": "4e453a4756cb17248090d609da3658c492d8cee1",
      "parents": [
        "f71d2f762bbb4dc393114237fba39f5e8ab0d979"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Wed Aug 19 23:27:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:31:55 2026"
      },
      "message": "crypto: fix some documentation errors\n\nSpecifically:\n* A method name typo in the README\n* The crypto/aead docs incorrectly said it CHECKs key lengths; fixed\n  those docs and filed https://crbug.com/546013416 to change the\n  behavior, which will require a bit of care\n* The crypto/aead docs incorrectly said we make a local copy of the\n  key; in fact BoringSSL does so\n* Wrong lists of supported primitives are removed in a couple of\n  places; the best way to know what primitives we support is to look at\n  the enums themselves\n* A class name typo in crypto/apple\n* The crypto/hash docs said you can reuse a Hasher after Finish(), but\n  actually it will CHECK() fail if you try to do so; fixed the docs\n* The crypto/kdf docs said the out buffer had to be \"the right size\"\n  for HKDF, but actually HKDF supports variable output sizes up to a\n  limit (which is documented elsewhere already)\n* crypto/keypair\u0027s private key import functions said they import\n  public keys. Oops!\n* The error return for UserVerifyingSigningKey::Sign() was wrong\n\nBug: 367888389\nChange-Id: I1c54afc18c9f77d2ab592810a12d6536b2befc07\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252598\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682716}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f85b3c4afba813857f09763bba39262e70eb9c8d\n"
    },
    {
      "commit": "f71d2f762bbb4dc393114237fba39f5e8ab0d979",
      "tree": "81a6025ccff3c7e6945b2a43406db2c0ff560556",
      "parents": [
        "1270ba88b7719dc36f80b52746870e0b78317425"
      ],
      "author": {
        "name": "Nina Satragno",
        "email": "nsatragno@chromium.org",
        "time": "Wed Aug 19 15:18:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 15:22:16 2026"
      },
      "message": "[crypto] Add support for exporting ML-DSA to COSE\n\nWebAuthn exports public keys in the COSE format. Add support for the\nML-DSA family of public keys.\n\nBug: 546370268\nChange-Id: I1652cb655230515d1294c4744705ab0cdde7e1a2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260895\nAuto-Submit: Nina Satragno \u003cnsatragno@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1682327}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b683c7139247d87acd4051b8ef7f13104162ae36\n"
    },
    {
      "commit": "1270ba88b7719dc36f80b52746870e0b78317425",
      "tree": "787e9a2113a03827f2fc6831e741bff0a382d6f2",
      "parents": [
        "91e8b0706064e12df7a220a4ba22afabea9e6ef8"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 22:05:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 22:11:14 2026"
      },
      "message": "[crypto] Hash challenge with SHA-256 in TPM key certification\n\nPreviously, TPM key certification passed raw caller-provided challenges\ndirectly to TPM2_Certify as the qualifyingData parameter. Under the TPM\n2.0 specification (Part 2: Structures, section 10.4.2), the TPM2B_DATA\nstructure used for qualifyingData is bounded in size by sizeof(TPMT_HA)\n(typically 32–64 bytes). Passing raw, arbitrary-length challenges\ndirectly can exceed buffer limits and cause TPM_RC_SIZE (0x115) errors\nor buffer overflows on hardware TPMs.\n\nThis CL updates the TPM key certification pipeline to hash the challenge\nwith SHA-256 before passing it to TPM2_Certify:\n\n- UnexportableAttestationKeyWin::CertifySlowly hashes the challenge with\n  crypto::hash::Sha256 and passes the 32-byte digest as qualifyingData\n  when constructing the command and parsing the response.\n- CreateTpm2bAttestationStatement in\n  unexportable_key_software_unsecure.cc hashes the challenge with\n  SHA-256 into the extraData (TPM2B_DATA) field. Because extraData is\n  now fixed at 34 bytes (2-byte size prefix + 32-byte digest), the\n  entire TPMS_ATTEST statement has a deterministic fixed size of exactly\n  105 bytes (magic [4] + type [2] + qualifiedSigner [2] + extraData\n  [34] + clockInfo [17] + firmwareVersion [8] + attested [36] +\n  qualifiedName [2]).\n- crypto/tpm.rs and crypto/tpm_parser.\\* rename challenge parameters to\n  qualifying_data and expected_extra_data to align with TPM 2.0\n  specifications and documentation.\n- Unit tests in crypto/unexportable_key_unittest.cc verify CertifySlowly\n  with empty and large (1024-byte) challenges, ensuring statement size\n  is consistently 105 bytes and passes signature verification. Tests in\n  crypto/tpm_parser_unittest.cc and crypto/tpm_unittest.rs are updated\n  to reflect qualifying_data / expected_extra_data naming and semantics,\n  including a new test for BuildCertifyCommand.\n\nBug: 530828835\nChange-Id: I3d35ecf261af5c4d3b183adf3853f40d6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8264039\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681738}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cce7e24f06e77e2df6aa420a539379a6417aeec7\n"
    },
    {
      "commit": "91e8b0706064e12df7a220a4ba22afabea9e6ef8",
      "tree": "c83965b6f3a93b9475ab49fa4bba48a64d69a141",
      "parents": [
        "5068d493526c7363b6dd03eb71a3167a913dcb51"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 18:57:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 19:03:23 2026"
      },
      "message": "[crypto] Format macOS attestation key signatures as raw IEEE P1363\n\nPreviously, macOS attestation key certification via\n`UnexportableAttestationKeyApple::CertifySlowly` returned DER-encoded\nECDSA signatures produced directly by Keychain APIs.\n\nThis CL updates `UnexportableAttestationKeyApple::CertifySlowly` to\nconvert the DER-encoded signature into raw IEEE P1363 format\n(concatenation of big-endian `r` and `s`, 64 bytes for P-256), matching\nthe format used in JWTs and DBSC AIK nested JWS attestation.\n\nSpecifically, this change:\n\n- Updates documentation in `crypto/unexportable_key.h` to explicitly\n  state that `AttestationStatement::Format::kSecureEnclave` uses raw\n  IEEE P1363 signatures.\n- Updates `UnexportableAttestationKeyApple::CertifySlowly` to convert\n  the DER signature to raw format using `ConvertEcdsaDerSignatureToRaw`.\n- Updates unit tests in\n  `crypto/apple/unexportable_key_apple_unittest.mm` to verify raw\n  64-byte signatures and validate verification after converting back to\n  DER.\n\nBug: 501307389\nChange-Id: I293c75e599e06ce4761003ed8e2c4b266a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8263161\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681568}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e288421cda3d3634eb7924a102224e3ca700bb52\n"
    },
    {
      "commit": "5068d493526c7363b6dd03eb71a3167a913dcb51",
      "tree": "50dd086e7e8e2bb0133da050852b7f437245a4c2",
      "parents": [
        "3b6ff5839d93ff0194d5536e04afccd45862339f"
      ],
      "author": {
        "name": "Nina Satragno",
        "email": "nsatragno@chromium.org",
        "time": "Tue Aug 18 18:51:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 18:57:00 2026"
      },
      "message": "[crypto] Add support for ML-DSA-{65, 87}\n\nAdd support for the -65 and -87 ML-DSA parameter sets to the //crypto\nBoringSSL wrappers. This will be used by Google Password Manager\npasskeys.\n\nAlso add some missing ML-DSA import/export helpers that are used by\nfollow-ups.\n\nFixed: 546422601\nChange-Id: I5c997860b96089ccda14401fa95fd6d1d076eefb\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8260893\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nAuto-Submit: Nina Satragno \u003cnsatragno@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681564}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b22b00172e0fa42af4ea7198e814c88dfaf46ce5\n"
    },
    {
      "commit": "3b6ff5839d93ff0194d5536e04afccd45862339f",
      "tree": "1073e2519a1bf5dbdcf0707cff89a545d0d16840",
      "parents": [
        "d229686325f6bfb78334dd9cf0eb8edcf24ee92d"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 12:33:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 12:37:48 2026"
      },
      "message": "[crypto] Implement streaming TPM sequence hashing on Windows\n\nUpdate the Windows `UnexportableKey` provider to support signing\npayloads larger than 1024 bytes. The standard `TPM2_Hash` command is\nrestricted to a maximum buffer size of 1024 bytes.\n\nTo bypass this limitation, this patch implements a multi-part hashing\nfallback mechanism:\n\n- Introduces a `HashDataSlowly` helper that dynamically chooses between\n  single-shot `TPM2_Hash` for small payloads and sequence hashing\n  (`TPM2_HashSequenceStart`, `TPM2_SequenceUpdate`,\n  `TPM2_SequenceComplete`) for larger payloads.\n- Utilizes `absl::Cleanup` to ensure `TPM2_FlushContext` is called to\n  clean up transient sequence handles if an error occurs during the\n  multi-part sequence, preventing TPM handle exhaustion.\n- Refactors `RecordTpmParseMetrics` to `ToOptionalAndRecordParseMetrics`\n  to streamline response parsing and error handling.\n\nBug: 530828835\nChange-Id: I8f3f67a37800706245571adb9d316a486a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8253446\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681297}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2230f8ede2b5bb567e7648eb4c5f4c4b41af88ae\n"
    },
    {
      "commit": "d229686325f6bfb78334dd9cf0eb8edcf24ee92d",
      "tree": "5f95d3c4787fd95f77e59150d21b70f3cc1fd5b7",
      "parents": [
        "1a2d4ad3ca1b20bd8ba7bb2cbaf7ce192b364892"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 12:33:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 12:37:11 2026"
      },
      "message": "[crypto] Implement TPM2_FlushContext command\n\nImplement support for building and parsing the TPM2_FlushContext\ncommand. This command is necessary for freeing transient objects and\nactive sequence contexts on the TPM, ensuring resources are properly\ncleaned up after operations like streaming sequence hashing.\n\nSpecifically, this patch:\n\n- Adds Rust implementations in `crypto/tpm.rs` to construct the command\n  buffer and parse the corresponding response.\n- Exposes the functionality to C++ by adding wrappers in\n  `crypto/tpm_parser.h` and `crypto/tpm_parser.cc`.\n- Updates the `TpmCommand` enumeration and corresponding UMA histogram\n  metadata to include `FlushContext`.\n- Maps the new command to `TPMOperation::kMessageHashing` in\n  `unexportable_key_win.cc` to ensure accurate telemetry tracking.\n\nBug: 530828835\nChange-Id: Id3119cbce1cbdeeff291017f18f4ebc76a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252527\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681296}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 68bd16488f7e47bd19fd5754d4bd843b27bf7151\n"
    },
    {
      "commit": "1a2d4ad3ca1b20bd8ba7bb2cbaf7ce192b364892",
      "tree": "d4d379e26e4fd28f046ba3082fffe3faae3d2253",
      "parents": [
        "4f1dbd8505f87725174e053f690e6c395831fd22"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 08:57:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 09:03:27 2026"
      },
      "message": "[crypto] Implement TPM2_SequenceComplete command\n\nImplement support for building and parsing the TPM2_SequenceComplete\ncommand. This finalizes the streaming TPM sequence hashing workflow by\nallowing the retrieval of the final hash digest and its validation\nticket.\n\nSpecifically, this patch:\n\n- Adds Rust implementations in `crypto/tpm.rs` to construct the command\n  buffer and parse the corresponding response.\n- Exposes the functionality to C++ by adding wrappers in\n  `crypto/tpm_parser.h` and `crypto/tpm_parser.cc`.\n- Updates the `TpmCommand` enumeration and corresponding UMA histogram\n  metadata to include `SequenceComplete`.\n- Maps the new command to `TPMOperation::kMessageHashing` in\n  `unexportable_key_win.cc` to ensure accurate telemetry.\n\nBug: 530828835\nChange-Id: I48be6eb6eb41398fc3d983883551ec536a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252526\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681211}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8f5149bdae677c2318f31cd4d0f4bf674058d28e\n"
    },
    {
      "commit": "4f1dbd8505f87725174e053f690e6c395831fd22",
      "tree": "993c94e894426630e135c68a2adbe11ef50ce50c",
      "parents": [
        "409f68fbbbdbddcb39c3d80c60b563a1783060b6"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 08:56:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 09:02:41 2026"
      },
      "message": "[crypto] Implement TPM2_SequenceUpdate command\n\nImplement support for building and parsing the TPM2_SequenceUpdate\ncommand. This continues the work to enable streaming TPM sequence\nhashing by allowing data to be appended to an active hash sequence.\n\nSpecifically, this patch:\n\n- Adds Rust implementations in `crypto/tpm.rs` to construct the command\n  buffer and parse the corresponding response.\n- Exposes the functionality to C++ by adding wrappers in\n  `crypto/tpm_parser.h` and `crypto/tpm_parser.cc`.\n- Updates the `TpmCommand` enumeration and corresponding UMA histogram\n  metadata to include `SequenceUpdate`.\n- Maps the new command to `TPMOperation::kMessageHashing` in\n  `unexportable_key_win.cc` to ensure accurate telemetry.\n\nBug: 530828835\nChange-Id: I020ce8979c70463bbdf6a5d9c780fda16a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252525\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681210}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 60fcbf63069152bf845177e2625a18b0af8cdd14\n"
    },
    {
      "commit": "409f68fbbbdbddcb39c3d80c60b563a1783060b6",
      "tree": "10f3b15583473bc899e2f3ad83606070e62770b5",
      "parents": [
        "35faf838ab3cb6dc89f0ca3014518ce6179bca88"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 08:56:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 09:02:07 2026"
      },
      "message": "[crypto] Implement TPM2_HashSequenceStart command\n\nImplement support for building and parsing the TPM2_HashSequenceStart\ncommand, laying the groundwork for streaming TPM sequence hashing.\n\nSpecifically, this patch:\n\n- Adds Rust implementations in `crypto/tpm.rs` to construct the command\n  buffer and parse the corresponding response.\n- Exposes the functionality to C++ by adding wrappers in\n  `crypto/tpm_parser.h` and `crypto/tpm_parser.cc`.\n- Updates the `TpmCommand` enumeration and corresponding UMA histogram\n  metadata to include `HashSequenceStart`.\n- Maps the new command to `TPMOperation::kMessageHashing` in\n  `unexportable_key_win.cc` to ensure accurate telemetry.\n\nBug: 530828835\nChange-Id: I70aecf6d2df2ca08fc92672c057016156a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8252524\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681209}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 63b829a6fbeec06c04d756fb0e23431f89acf1c9\n"
    },
    {
      "commit": "35faf838ab3cb6dc89f0ca3014518ce6179bca88",
      "tree": "c901a531d18f742db3c31969e63a036b7e04de8e",
      "parents": [
        "d8d1b73d231c5048d819b9940e6bf8b25453a63a"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 18 08:55:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 08:58:48 2026"
      },
      "message": "[crypto] Refactor TPM serialization and parser helpers\n\nThis change refactors the Rust TPM command builders and response parsers\nto reduce duplication and improve maintainability.\n\nSpecifically, it introduces `Reader::read_response_header` and\n`Reader::ensure_empty` to centralize the validation of response tags,\nsizes, and error codes, ensuring consistent boundary checks. For\nserialization, `Writer::write_command_header` and\n`Writer::write_password_sessions` are added to eliminate boilerplate\nwhen constructing TPM commands.\n\nAdditionally, it introduces a unified `ResponseStatus` struct to the CXX\nFFI boundary, encapsulating both the parsing result and the TPM response\ncode. Redundant constant wrappers are removed in favor of directly using\nthe strongly-typed CXX FFI enums.\n\nNO_IFTTT\u003dNo actual change to the enum.\n\nBug: 530828835\nChange-Id: I3defa73a3933389cfc68140b80b2bdde6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8253443\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1681208}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 6aa050f1f2a833d671e586f902d2038b616c37c7\n"
    },
    {
      "commit": "d8d1b73d231c5048d819b9940e6bf8b25453a63a",
      "tree": "0057a0ad1897b1ad653894e04d792f3d17591751",
      "parents": [
        "04a7de38195c357ffd6a3887381761f7f868f99e"
      ],
      "author": {
        "name": "Sophie Chang",
        "email": "sophiechang@chromium.org",
        "time": "Mon Aug 17 22:15:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 17 22:19:47 2026"
      },
      "message": "crypto: Add ML-KEM-768 key support and HPKE integration\n\nThis change adds ML-KEM-768 support to crypto::keypair and crypto::hpke.\n\n- crypto::keypair::PrivateKey: Add GenerateMlkem768,\n  FromMlkem768PrivateKey (taking a 64-byte seed), ToMlkem768PrivateKey,\n  ToMlkem768PublicKey, and IsMlkem768.\n- crypto::keypair::PublicKey: Add FromMlkem768PublicKey,\n  ToMlkem768PublicKey, and IsMlkem768.\n- SupportedEvpAlgorithms: Include EVP_pkey_ml_kem_768 so PKCS#8 and SPKI\n  routines support ML-KEM-768.\n- crypto::hpke: Add KemType::kMlkem768 and support ML-KEM-768 in Base\n  mode Seal and Open by exporting raw keys and dynamically handling\n  the encapsulated shared secret length.\n\nBug: 535883377\nChange-Id: Id2981b3f0fafd91946d93a7b4ae70531eaf2938b\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8261081\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: Sophie Chang \u003csophiechang@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1680860}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: db220c8e034ce4a55b6a51a53cd3f0387d39b552\n"
    },
    {
      "commit": "04a7de38195c357ffd6a3887381761f7f868f99e",
      "tree": "74cb80c0a2f86b41e06481df30fe9c170c57755b",
      "parents": [
        "3d97fed5ea144b2e8ac3b6fab49f1db1f80b7a9f"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Fri Aug 14 18:05:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 18:09:24 2026"
      },
      "message": "Remove CBB_finish when unnecessary\n\nCBB_finish takes the buffer out of the CBB and hands it to the caller.\nThis happens a lot in BoringSSL, but since Chromium generally doesn\u0027t\nexpect buffers to be owned by OPENSSL_malloc, Chromium generally copies\nit into a std::vector anyway. In that case, there\u0027s no real sense in\ntaking the buffer out of the CBB. We can just use CbbAsSpan instead.\n\nOne minor note is that CBB_finish implicitly flushes, so in the cases\nwhere we need it (if the last operation was to a child CBB), we need to\nput an explicit flush there.\n\nChange-Id: I259d43c7ae85833439f904be46e079570ee73ba4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8128583\nReviewed-by: Artem Sumaneev \u003casumaneev@google.com\u003e\nReviewed-by: Michael Ershov \u003cmiersh@google.com\u003e\nReviewed-by: Martin Kreichgauer \u003cmartinkr@google.com\u003e\nReviewed-by: Sorin Jianu \u003csorin@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1679701}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 953a71796a35ae4b3dd09172d1415c44e6ff1b9c\n"
    },
    {
      "commit": "3d97fed5ea144b2e8ac3b6fab49f1db1f80b7a9f",
      "tree": "94a1f48695e57e67af533800a5f8229ccaaa76d5",
      "parents": [
        "bd53fdd65480648b47766aa7f9bf459ad7808b3b"
      ],
      "author": {
        "name": "Greg Thompson",
        "email": "grt@chromium.org",
        "time": "Fri Aug 14 06:01:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 14 06:05:07 2026"
      },
      "message": "[Windows] Remove the module list from DelayLoadFailureHook\n\nIn its place, introduce base::win::LoadAllImportsForDllUnchecked for\ncallers that want to gracefully handle a failure to load or resolve all\nimports for a module.\n\nFixed: 536936869\nChange-Id: I48cf7178f5a13bcb55ce5ae16e7dfa1f4a5efc03\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8214080\nReviewed-by: Will Harris \u003cwfh@chromium.org\u003e\nReviewed-by: Ilya Nikolaevskiy \u003cilnik@chromium.org\u003e\nReviewed-by: David Bienvenu \u003cdavidbienvenu@chromium.org\u003e\nReviewed-by: Sangbaek Park \u003csangbaekpark@chromium.org\u003e\nReviewed-by: Reilly Grant \u003creillyg@chromium.org\u003e\nCommit-Queue: Greg Thompson \u003cgrt@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1679381}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 36db377837069dbd84002ced16dc220c15edac3b\n"
    },
    {
      "commit": "bd53fdd65480648b47766aa7f9bf459ad7808b3b",
      "tree": "f5749523fc8e9b7478318c939475af7699934567",
      "parents": [
        "2d7a8a6bdaa8b9dfa71755040554198e47546b29"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Aug 13 01:02:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 13 01:06:19 2026"
      },
      "message": "crypto/apple: support multiple updates in FakeKeychain\n\nTo do this without mutating the vector of items while iterating it,\naccumulate new entries into a fresh vector, then replace the current\none after we\u0027re done.\n\nFixed: 510320946\nChange-Id: Id22992c517a1e1277427df816f3d205cb29aa5ec\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8243967\nReviewed-by: Avi Drissman \u003cavi@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1678463}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0bcffbffde56715f09c35a875afa83189f3c112b\n"
    },
    {
      "commit": "2d7a8a6bdaa8b9dfa71755040554198e47546b29",
      "tree": "4f2299f881a1a32ee624144208017f79b5d1ff06",
      "parents": [
        "99349e8e1bcdf5f1b71e13d240f6c35e837f200d"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 11 19:44:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 11 19:51:14 2026"
      },
      "message": "[crypto] Use Enum API for TPM serialization\n\nReplace manual serialization and deserialization of TPM enums with the\nnewly introduced `WriteEnumBigEndian` and `ReadEnumBigEndian` methods\nfrom `base::SpanWriter` and `base::SpanReader`.\n\nPreviously, writing enums required explicit boilerplate calls to\n`std::to_underlying`, and reading enums required intermediate integer\nvariables (e.g., `uint16_t`). By migrating to the dedicated Enum API,\nthis change simplifies the code, reduces boilerplate, and improves\noverall type safety within the TPM parser and unexportable key\nimplementations.\n\nChange-Id: Ic80712c9986366d71ad0a93218533fe56a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8231561\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1677458}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 501b3c0de525771ca4eed60911bc45db359fe027\n"
    },
    {
      "commit": "99349e8e1bcdf5f1b71e13d240f6c35e837f200d",
      "tree": "012ef9116e01b819c1cd7aae4f5135f3a5d02532",
      "parents": [
        "e6979d3f6db3909e0056ab57b0c3a6e8816fd789"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Aug 11 19:44:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 11 19:50:41 2026"
      },
      "message": "[crypto] Implement AIK::SignSlowly for Windows and software keys\n\nIntroduce the `SignSlowly` method for attestation keys backed by Windows\n(TPM) and unsecure software providers, addressing missing signing\nfunctionality for these key types.\n\nUpdate the software implementation to reject signing payloads starting\nwith the `TPM_GENERATED_VALUE` magic constant. This emulates hardware\nTPM protections that prevent attestation keys from forging TPM-generated\ncertification tickets.\n\nRefactor the TPM Base Services (TBS) integration on Windows to extract\nreusable helpers for context retrieval and command submission. Implement\nthe `SignSlowly` routine by submitting `TPM2_Hash` and `TPM2_Sign`\ncommands directly to the TPM. This implementation includes workarounds\nfor platform-specific requirements, such as forcing SHA-1 hashing for\nECDSA keys on the Windows Platform Crypto Provider (PCP). Additionally,\nconfigure the proper RSA scheme properties during key creation.\n\nConsolidate shared TPM constants and algorithm IDs into\n`crypto/tpm_parser.h` for broader reuse. Generalize the associated UMA\nhistograms and parsing results to support the newly added `TPM2_Hash`\nand `TPM2_Sign` commands.\n\nBug: 530828835\nChange-Id: Ie221076f92496208c81579e80b6152bf6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8194746\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1677457}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: ed3354ada1e05ad0723b5a2727bfc4fb97df44f5\n"
    },
    {
      "commit": "e6979d3f6db3909e0056ab57b0c3a6e8816fd789",
      "tree": "b54e4b3258e1da5c5f92ed59a60026cff627478a",
      "parents": [
        "41e6833c39849ba1dc2781764381a8ab0de76c8f"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Aug 10 21:59:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 10 22:02:13 2026"
      },
      "message": "Add ParseTpmSignature to parse TPMT_SIGNATURE blobs\n\nIntroduce the `ParseTpmSignature` utility function to extract and\nnormalize signatures from serialized `TPMT_SIGNATURE` blobs. The\nfunction leverages the existing Rust parsing backend and processes the\nextracted signature based on its algorithm.\n\nFor RSA signatures (`TPM_ALG_RSASSA`), the raw signature bytes are\nreturned directly. For ECDSA signatures (`TPM_ALG_ECDSA`), the raw R and\nS components are converted into a standard DER-encoded format before\nbeing returned. This provides a unified C++ interface for handling\nTPM-generated signatures in a format suitable for standard cryptographic\nverification.\n\nChange-Id: I9b04f69493aa5b15b3ed3315d580b4b26a6a6964\nBug: 530828835\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8213983\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1676746}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 940904f102745ad8b3e088e22139ac2c34f7c435\n"
    },
    {
      "commit": "41e6833c39849ba1dc2781764381a8ab0de76c8f",
      "tree": "882a850da619e0c11d066e2e4f576839a0ddcbd4",
      "parents": [
        "0004e8da7f14486cdb85ce495ff069f52090779a"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Aug 10 19:19:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 10 19:23:01 2026"
      },
      "message": "[crypto] Expose TPM FFI enums to improve type safety\n\nReplace raw integer parameters with strongly typed FFI enums in TPM\ncommand builders. Previously, functions like `BuildHashCommand` and\n`BuildSignCommand` accepted raw integer types, which have now been\nreplaced with `TpmAlg` and `TpmRh` enums.\n\nThis change exposes the `TpmRh` enum across the C++/Rust boundary to\nrepresent TPM Reserved Handles. Additionally, C++ specific constants\nsuch as `kTpmRhOwner` and `kTpmRhEndorsement` are removed in favor of\nthe shared FFI enum values. The `SignatureAlgorithms` struct is also\nupdated to use `TpmAlg` instead of integers for telemetry and parsing.\n\nChange-Id: If46c6a5db4145a521ad3f9ff2cf33d7e6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8223204\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1676637}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e5573bc9890b3fb5aa51a743e488ca23515254a6\n"
    },
    {
      "commit": "0004e8da7f14486cdb85ce495ff069f52090779a",
      "tree": "de692e082ef02471384286a773b462853dda50a2",
      "parents": [
        "095e326de8c73a212f38b3bbed84a684be61233b"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Aug 06 17:26:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 06 17:29:36 2026"
      },
      "message": "[crypto] Implement TPM2_Sign command builder and parser\n\nThis change introduces the capability to build and parse TPM2_Sign\ncommands within the crypto library. It implements the serialization and\ndeserialization logic in Rust to adhere to the TPM 2.0 specification and\nsecurely handle TPM signatures.\n\nSpecifically, this change:\n\n- Implements `build_sign_command` and `parse_sign_response` in Rust.\n- Exposes `BuildSignCommand` and `ParseSignResponse` C++ wrappers\n  through the CXX bridge.\n- Adds necessary TPM 2.0 constants such as `TPM_CC_SIGN` and data\n  structures to manage the sign response.\n\nBug: 530828835\nChange-Id: I659714516a25a2a7186e287f9d1f360c6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8213982\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1675076}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d3d42bb35bf3e4ac57f232536afeeb2e778ee249\n"
    },
    {
      "commit": "095e326de8c73a212f38b3bbed84a684be61233b",
      "tree": "a690987caf124e223efa191543804fbc805769c7",
      "parents": [
        "667a683d2b6149b78158a7b75d9143dd31b35c3f"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Aug 06 11:50:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 06 11:53:58 2026"
      },
      "message": "[crypto] Implement TPM2_Hash command builder and parser\n\nThis change introduces the ability to construct TPM2_Hash commands and\nparse their corresponding responses within the TPM cryptography library.\n\nSpecifically, this commit includes the following modifications:\n\n- Adds required TPM 2.0 constants for hash operations, including command\n  codes and hierarchy handles.\n- Implements a command builder to serialize input data into a valid\n  TPM2_Hash command buffer.\n- Implements a response parser to deserialize the TPM\u0027s response and\n  extract the hash digest and validation ticket.\n- Exposes these Rust implementations to C++ via FFI bridges in the\n  associated parser headers.\n\nThese additions provide the necessary infrastructure to support\nhardware-backed hashing and validation ticket generation.\n\nBug: 530828835\nChange-Id: I6dcb23638e8d2bb6aa39d778ad0517e76a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8193335\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1674863}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a6f7332da8fc3971642294a26c46a60ed6b8e376\n"
    },
    {
      "commit": "667a683d2b6149b78158a7b75d9143dd31b35c3f",
      "tree": "35ec850062b5115a0a6fa5c14cf716422eefa2ae",
      "parents": [
        "e9b9c30a8ebcaf305b0349d7de69b32e02deef8c"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Aug 05 09:03:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 05 09:06:21 2026"
      },
      "message": "[crypto] Generalize TPM parser error types to TpmParseError\n\nRename `CertifyResponseError` and its associated types to\n`TpmParseError` to reflect a more general purpose. This change broadens\nthe scope of the error types, allowing them to be reused when parsing\nother TPM responses beyond the certify response.\n\nAdditionally, update related aliases and functions, such as changing\n`CertifyResponseErrorOr` to `TpmParseErrorOr` and renaming\n`MapCertifyParseResult` to `MapParseResult`. This ensures consistency\nacross the codebase when handling TPM parsing errors.\n\nBug: 530828835\nChange-Id: I2d39d547f77033a3aef7f460cc8124616a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8194744\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1673980}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b2ca8960a7b31dc956037fb387c5f5ef3635a4c1\n"
    },
    {
      "commit": "e9b9c30a8ebcaf305b0349d7de69b32e02deef8c",
      "tree": "2b84d404aee82db0c21e75eb3c3c0868f2897880",
      "parents": [
        "35a50f329b99d8eeb51e08c3349d5555e03e5bbd"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Tue Aug 04 19:05:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 04 19:10:49 2026"
      },
      "message": "Add a CbbAsSpan helper function in //crypto\n\nAlso remove a couple unnecessary CBB_flush calls. If the last operation\nwas to the root CBB, it was already implicitly flushed. (Flush closes\nout any open child CBBs.)\n\nChange-Id: I28fdb84df683ba862ba303982058a62bae466c19\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8128582\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1673569}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5e92e71ffccbf6ad2ea7d0a0f722053919d33132\n"
    },
    {
      "commit": "35a50f329b99d8eeb51e08c3349d5555e03e5bbd",
      "tree": "c7fccefee71bfaadb70210279b629dd9038f149e",
      "parents": [
        "697c358b2c99b21a280a222ce64ca75a16463ade"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Fri Jul 31 01:18:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 31 01:22:48 2026"
      },
      "message": "trusted-vault: use crypto/keypair\n\nThis replaces a bunch of code which manually packs and unpacks ECDH\nP-256 private scalar values with calls to the crypto/keypair APIs which\ndo the same. It also represents the keys within SecureBoxPrivateKey and\nSecureBoxPublicKey with crypto/keypair objects rather than BoringSSL\nEVP_PKEYs, and uses the crypto/kex API for ECDH rather than the\nBoringSSL one. In aggregate, this deletes a bunch of code and increases\nmemory safety. Since the new APIs have less failure cases, some\nerror-tracer arguments are no longer required (because no fallible calls\nare in their scope).\n\nChange-Id: I353fa6df2bc81cbcacabd8bf23a45f1861b4d129\nBug: 526700186\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8071219\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Mikel Astiz \u003cmastiz@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1671573}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: bbc4eca4aac76bfc1f99ff3c40a8091b1e2cb902\n"
    },
    {
      "commit": "697c358b2c99b21a280a222ce64ca75a16463ade",
      "tree": "34cf1d66c44240a92cd986e5513f056d8f9ff07b",
      "parents": [
        "80122ad86207d3ff4361b737ba1405c15318b185"
      ],
      "author": {
        "name": "Mark Cogan",
        "email": "marq@chromium.org",
        "time": "Wed Jul 29 16:10:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 29 16:14:41 2026"
      },
      "message": "[crypto] Enable iOS keychain migration by default.\n\n50% migration rollout shows no significant regressions, so enabling by\ndefault. Flag will be removed in the following milestone, and in 1-2\nfurther milestones, we\u0027ll look at the migration metrics and (if it makes\nsense) will remove the migration code.\n\nChange-Id: Ibe463612993025552c27ed5ee8beb94ac21c6f90\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8159904\nCommit-Queue: Mark Cogan \u003cmarq@chromium.org\u003e\nReviewed-by: Adam Langley \u003cagl@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1670304}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 54ff9d7ae4faadceac2b5a7cccc5da2cbf690778\n"
    },
    {
      "commit": "80122ad86207d3ff4361b737ba1405c15318b185",
      "tree": "4ebea11b4cc0f9f4b1b11374435b1f785d6aab4d",
      "parents": [
        "66c39900e29ee8f064281de0a0f92f1f5b7fd550"
      ],
      "author": {
        "name": "Nick Diego Yamane",
        "email": "nickdiego@igalia.com",
        "time": "Fri Jul 24 21:06:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 24 21:11:11 2026"
      },
      "message": "[android] Fix unit test component builds\n\nWhen is_component_build is set, unit tests build fail with a linker\nerror about undefined reference for content::GetHashedUrlPath function,\nwhich is intentionally declared at crypto/obsolete/sha1.h. This fixes it\nby exporting that symbol within CONTENT component. Note: to achieve that\nwithout layering violation, COMPONENT_EXPORT(CONTENT) was used instead\nof CONTENT_EXPORT directly.\n\nSigned-off-by: Nick Diego Yamane \u003cnickdiego@igalia.com\u003e\nChange-Id: Idc24f217ca696fa5d39811d417a725004f3efdb4\nBug: None\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8031386\nReviewed-by: Mingyu Lei \u003cleimy@chromium.org\u003e\nReviewed-by: Emily Stark \u003cestark@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1668159}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 564c7495231444bfc70ccde3fa38bdf6d8eed68e\n"
    },
    {
      "commit": "66c39900e29ee8f064281de0a0f92f1f5b7fd550",
      "tree": "c868e35cbb2a9b4b1509cbf483fc9f5cc7e5e5b7",
      "parents": [
        "3ff201ecc00e1f6986f28e93e607ddef84daa520"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Fri Jul 10 00:22:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 10 00:24:40 2026"
      },
      "message": "crypto: remove old hkdf API\n\nThe new crypto/kdf API is now used everywhere. Yay!\n\nFixed: 430616377\nChange-Id: I5c6b18956a60b536d6cd56de2c367634558ab8ee\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8072603\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nReviewed-by: Matt Mueller \u003cmattm@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1659977}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 106605673039022ceeb73cd4aab05f80f2676229\n"
    },
    {
      "commit": "3ff201ecc00e1f6986f28e93e607ddef84daa520",
      "tree": "c138bd085885b6c65b5db20abdd43e0d916c5bac",
      "parents": [
        "2a223957ba837e189463714269483ad452c5fcbc"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Jul 08 05:25:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 08 05:27:07 2026"
      },
      "message": "[crypto] Replace UNSAFE_TODO with span in unexportable keys\n\nRefactor `crypto/unexportable_key_win.cc` to use `base::span` instead of\nraw pointer arithmetic and `UNSAFE_TODO` macros. This improves memory\nsafety when parsing exported keys and signatures.\n\nSpecifically, this change:\n\n- Replaces `memcpy` and pointer arithmetic with `split_at`, `copy_from`,\n  and `reinterpret_span` when processing `BCRYPT_ECCKEY_BLOB` and\n  `BCRYPT_RSAKEY_BLOB`.\n- Uses `base::ClampedNumeric` for size calculations instead of nested\n  `base::CheckAdd`.\n- Delegates DER encoding and SubjectPublicKeyInfo generation to\n  utilities in `keypair::PublicKey` and\n  `ConvertEcdsaRawComponentsToDer`, removing direct dependencies on\n  BoringSSL `BIGNUM` and `CBB`.\n\nChange-Id: I5d5c7f50cd101a1de4dbee333409f63f6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8052649\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1658498}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 3349196127d46f376da5644ec87ae6d6b9198670\n"
    },
    {
      "commit": "2a223957ba837e189463714269483ad452c5fcbc",
      "tree": "7a2d9da23268b32dea141d8dc834201e9f276407",
      "parents": [
        "1ac6e2d59ed278bdf3fb50c5d9cb215a78f9fec1"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Jul 07 18:51:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 07 18:54:31 2026"
      },
      "message": "[crypto] Force SHA-256 for Windows TPM RSA keys\n\nTPM 2.0 RSA keys created on Windows via the Platform Crypto Provider\ndefault to using SHA-1 for signing if left unconfigured. This change\nexplicitly restricts these keys to SHA-256 by setting the\nNCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY property during key creation.\n\nAdditionally, this change refactors the Windows unexportable key code by\nintroducing a SecurityStatusOr template alias and a SetNCryptProperty\nhelper function. Multiple functions are updated to use these helpers\nalong with ASSIGN_OR_RETURN and RETURN_IF_ERROR macros to streamline\nerror handling and improve readability.\n\nChange-Id: Ic3ec1c65ce7cf6ee3efb76f3ed6a91386a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8053224\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1658164}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 32ec006ee9e002565dcce5e57d23f1e8aabfa827\n"
    },
    {
      "commit": "1ac6e2d59ed278bdf3fb50c5d9cb215a78f9fec1",
      "tree": "f0fa7c9acd994685d9212b70c71e2c43f563ed75",
      "parents": [
        "67c4a46d8fa00e52e25618b845d482df6c9abe72"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Jul 06 19:34:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 19:36:21 2026"
      },
      "message": "[crypto] Re-enable Windows RSA unexportable key tests\n\nVerified that the entire stack compiles and passes on Win11 Tests x64\nbot.\n\n* UTR Results:\nhttps://ci.chromium.org/ui/inv/u-jdoerrie-2026-07-06-08-32-00-bf88c138ea6d1411\n* Swarming Task:\nhttps://chromium-swarm.appspot.com/task?id\u003d794f60f50bab1010\n\nBug: 529304622\nChange-Id: Ic0a66e849b48da72c1c3a409c846e4386a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8044068\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1657387}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 0e888fbd961251ec6a7a439e55cab5a94d52edff\n"
    },
    {
      "commit": "67c4a46d8fa00e52e25618b845d482df6c9abe72",
      "tree": "9c2c1f93bd83ec1838323a7bdb08236b2b2f0c1a",
      "parents": [
        "88f778c246fc3189bd39ecb4700cc78e6c806c3e"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Jul 06 19:32:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 19:34:54 2026"
      },
      "message": "[crypto] Merge UnexportableKey into UnexportableSigningKey\n\nSimplify the unexportable key class hierarchy by removing the redundant\ncrypto::UnexportableKey class and merging its interface into\ncrypto::UnexportableSigningKey.\n\nThis change is part of the effort to close Device Bound Session\nCredentials (DBSC) Single Sign-On (SSO) gaps on Windows and macOS, which\nrequires hardware-backed attestation keys to perform signing operations\n(specifically signing the header and payload combination to generate\nsession registration JWTs). To enable this,\ncrypto::UnexportableAttestationKey now inherits directly from\ncrypto::UnexportableSigningKey, exposing the SignSlowly() signing\ninterface on attestation keys.\n\nUpdate all references across components/unexportable_keys, crypto/apple,\nand crypto/win. Mock and software-backed unsecure key implementations\nare also adjusted to match the new inheritance structure. On Windows,\nAttestationKeyWin implements SignSlowly() and SupportsTls13() using\nNOTIMPLEMENTED() stubs.\n\nBug: 530828835\nChange-Id: I0f213240d570ab1675a94851cbb5e2e86a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8035003\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1657384}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d6efd373d20bbb8611dde1f00baa5713451c8534\n"
    },
    {
      "commit": "88f778c246fc3189bd39ecb4700cc78e6c806c3e",
      "tree": "51f0b3c4a89cae90298fc7e815173968bb5c0e06",
      "parents": [
        "b39f53b84ad63aafd8ddd63be3c1dd43eb90add0"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Fri Jul 03 13:57:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jul 03 18:46:28 2026"
      },
      "message": "[dbsc] Implement hardware-backed attestation keys on macOS\n\nProvide macOS support for hardware-backed attestation keys using the\nSecure Enclave to enable certification that a device-bound session\ncredential (DBSC) signing key resides in the same physical hardware.\n\nTo minimize code duplication, refactor the existing Secure Enclave\nsigning key implementation:\n\n- Extract common key properties and initialization into a templated base\n  class `AppleKeyImpl`.\n- Consolidate key generation and wrapped key restoration into templated\n  helper functions `GenerateKeySlowlyImpl` and\n  `FromWrappedKeySlowlyImpl`.\n\nUse these helper functions to introduce the concrete class\n`UnexportableAttestationKeyApple`. It implements `CertifySlowly` by\nsigning a statement that combines a challenge and the SHA-256 hash of\nthe target signing key\u0027s Subject Public Key Info (SPKI).\n\nAdditionally, update `UnexportableKeyProviderApple` to expose the new\nattestation key generation and recovery methods, and document the new\ncustom Secure Enclave format in the `AttestationStatement` structure.\n\nBug: 501307389\nChange-Id: I8a01c3f09587b49000ab14ab2ffc28256a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8025259\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1656546}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: a5c8d23819b83b8916cd711ab6e0b1a8ccb3c0b1\n"
    },
    {
      "commit": "b39f53b84ad63aafd8ddd63be3c1dd43eb90add0",
      "tree": "03cc0cba633f52edcaa016fe32f670723df075ec",
      "parents": [
        "2cfd02fba09187ecc6fbc47c482ac762aa5d8282"
      ],
      "author": {
        "name": "Justin Lulejian",
        "email": "jlulejian@chromium.org",
        "time": "Mon Jun 29 16:37:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 16:40:00 2026"
      },
      "message": "[Gardener] Disable Windoes RSA_PKCS1_SHA256 UnexportableKey tests\n\nThe RSA_PKCS1_SHA256 test cases in UnexportableKeyTest are currently\nfailing on Windows CI builders because RSA key generation is not\nsupported by the underlying hardware/TPM. Disable the failing parameter\nonly on Windows using BUILDFLAG(IS_WIN) and add a TODO to fix it.\n\nTAG\u003dagy\nCONV\u003db3eb2b72-de2a-4809-9408-e06b6d838d2c\n\nBug: 529304622\nChange-Id: I7a477d4a33902265060b1f383d8bdf359d3188c1\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8020723\nAuto-Submit: Justin Lulejian \u003cjlulejian@chromium.org\u003e\nCommit-Queue: Justin Lulejian \u003cjlulejian@chromium.org\u003e\nReviewed-by: Sayed Elabady \u003celabadysayed@chromium.org\u003e\nOwners-Override: Justin Lulejian \u003cjlulejian@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1654141}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 925d12ee3917d38b3139a7a2c38fc2ed91a85f46\n"
    },
    {
      "commit": "2cfd02fba09187ecc6fbc47c482ac762aa5d8282",
      "tree": "07bb923ffef85b913102e13c085e2529b3129007",
      "parents": [
        "d152490835cc8d069326257b858d884e9fad6af7"
      ],
      "author": {
        "name": "Will Taylor",
        "email": "willjt@google.com",
        "time": "Fri Jun 26 00:51:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 26 00:53:19 2026"
      },
      "message": "Migrate from base::SHA1HashString to crypto::obsolete::hash::Sha1.\n\nReplace usages of base::SHA1HashString with crypto::obsolete::hash::Sha1\nfor SHA1 hashing in FileSystemAccessFileHandleImpl and its unit tests.\nFunctionality is the same, except that we are able to track current sha1\nusage as sha1 is deprecated and discouraged for new code.\n\nBug: 430344933\nChange-Id: I7e4005b56ee1df041cb83c17405567bf160a9c19\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7987714\nCommit-Queue: Will Taylor \u003cwilljt@google.com\u003e\nReviewed-by: Rahul Singh \u003crahsin@microsoft.com\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1652840}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 85dc499e417d5a5363277ea369246d5eba8ab0f8\n"
    },
    {
      "commit": "d152490835cc8d069326257b858d884e9fad6af7",
      "tree": "102339babc3a3783edcd1c9a0b1582d8d9d1caed",
      "parents": [
        "2424d2145f8ded96b681663600d798673c65718f"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu Jun 25 09:04:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 25 09:05:56 2026"
      },
      "message": "[crypto] Restrict keychain queries on macOS\n\nEnsure that keychain queries for unexportable keys are scoped to the\ndata protection keychain.\n\nBug: 520516655\nChange-Id: I67fe92097b757d97549235ad5c4f2a7c6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7966018\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1652247}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 49d90ea1fbcbe0eb8d9cdcb9de2fb0179dc9ef1b\n"
    },
    {
      "commit": "2424d2145f8ded96b681663600d798673c65718f",
      "tree": "4727cb61618e519e324aa1898c0a9ea5b1de38a7",
      "parents": [
        "e1d5f61ca89cd545a3096f06d62170855f603e43"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Wed Jun 24 17:10:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 17:13:46 2026"
      },
      "message": "crypto/hash: deprecate sha1\n\nSpecifically, mark as deprecated:\n* crypto/hash sha1 support\n* crypto/hmac sha1 support\n* crypto/kdf Pbkdf2HmacSha1\n* crypto/sign schemes with sha1\n\nSome of these will get moved into crypto/obsolete later, some will\nget deleted (I guess).\n\nBug: 527094641\nChange-Id: I4da356b37e754647a956b2c0d326289211a9d18e\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7989372\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651799}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 61e3eac75340b83348a0bf99a8ff6e65cc8f7334\n"
    },
    {
      "commit": "e1d5f61ca89cd545a3096f06d62170855f603e43",
      "tree": "c174d340752da9b2a4622274fd3eea50a5aa8582",
      "parents": [
        "92f6b7bebb20cc5e07f535ca13bb4f1f8207bdfc"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Wed Jun 24 15:47:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 15:48:51 2026"
      },
      "message": "Use some newer BoringSSL APIs in crypto/keypair\n\n- We have new keygen functions that are a bit less tedious\n\n- We have an API to directly copy the public half of a key without\n  transiting through SPKI\n\n- Instead of parsing and then checking the key type afterwards, we have\n  parsing APIs that take a list of supported key types. This avoids\n  running the parsers for unsupported types at all. These APIs also\n  check for trailing data (the pattern of leaving trailing data was, in\n  hindsight, kinda error-prone).\n\nChange-Id: I8b83c76648295f3b2c994fa37328b840f7514544\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7988614\nAuto-Submit: David Benjamin \u003cdavidben@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651742}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c3c33d4592a6a07d5bca774ffc598c7e456c48e8\n"
    },
    {
      "commit": "92f6b7bebb20cc5e07f535ca13bb4f1f8207bdfc",
      "tree": "826a8a9e574f48ded27c6487ef5baa259e0cf364",
      "parents": [
        "2089ea8eac6093dfd8081669c5b05142959bf22e"
      ],
      "author": {
        "name": "Ali Hijazi",
        "email": "ahijazi@chromium.org",
        "time": "Wed Jun 24 14:50:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 14:52:49 2026"
      },
      "message": "[Crypto] Add background thread warning to SelectAlgorithm\n\nAdd a warning comment to UnexportableKeyProvider::SelectAlgorithm()\ndocumenting that it can trigger a synchronous load of ncrypt.dll on\nWindows, and therefore must be called on a background thread.\n\nBug: 526291688\nChange-Id: Ie7744bad5c0aa154342e5a3b26bae46d03657fb7\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7993255\nCommit-Queue: Ali Hijazi \u003cahijazi@chromium.org\u003e\nReviewed-by: Adam Langley \u003cagl@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651712}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 07c26214166006971ff438a06b5b4d8c8bd437b8\n"
    },
    {
      "commit": "2089ea8eac6093dfd8081669c5b05142959bf22e",
      "tree": "b0960fc18b81976bd683009d0b50928e4572e80b",
      "parents": [
        "c1eb90516e518db61620fc6bdcda2538eaadf82b"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Wed Jun 24 00:27:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 00:29:30 2026"
      },
      "message": "variations: use crypto/hpke\n\n... instead of hand-calling the HPKE APIs.\n\nThis also allows deleting the enc_len parameter the variations crypto\nAPIs take, since the crypto/hpke API handles the details of splitting\noff the ciphertext when unsealing internally.\n\nBug: 505830922\nChange-Id: I8d260e67e87c978129e8bf29e68632228d583e06\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7953719\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651401}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c1f15fa253ffcc0a8d876dc09a81f7cba399549b\n"
    },
    {
      "commit": "c1eb90516e518db61620fc6bdcda2538eaadf82b",
      "tree": "f09b59d62b9d7309cd557ecf0aa26596c971fb53",
      "parents": [
        "7dc3e798aa9c96e00b5b3d61b2adc110e21c92d6"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Tue Jun 23 23:37:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 23:40:18 2026"
      },
      "message": "crypto: Fix documentation of FromEcP256Point, etc\n\nAn EC point is not an integer, so \"big endian integer point\" does not\nmake much sense. X9.62 is an opaque phrase, but it is the name of the\nformat. Also include a reference to the corresponding serialization\nformat to help hint callers.\n\nAlso rework the warning about using SPKI/PKCS8. It\u0027s odd that we only\nput that on some methods. It\u0027s also a bit strong. Formats as these are\nright when you only want to encode public key. (SPKI shouldn\u0027t be used\nin places where you already know the algorithm. It adds overhead and\nrisks extra failures if what you get back is something not of the type\nyou expected.) To avoid copy-pasting it everywhere, I put it as a\nsection header. There sadly have to be two of them because we put\nimport/export in different groups.\n\nChange-Id: I56ad251d374fd20f557a1eade0ad1fc6a5843eaa\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7987559\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: David Benjamin \u003cdavidben@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651370}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 471cc6c983c762c36aaae0987add7e855ddddc26\n"
    },
    {
      "commit": "7dc3e798aa9c96e00b5b3d61b2adc110e21c92d6",
      "tree": "41f45421a29539c76049a26f8074c1be1e9c92c4",
      "parents": [
        "4987d40517d63b808123dc4a471b40089dadf848"
      ],
      "author": {
        "name": "Mark Cogan",
        "email": "marq@chromium.org",
        "time": "Tue Jun 23 16:15:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 16:16:47 2026"
      },
      "message": "Remove crypto::apple::RecordKeychainMigrationStatus()\n\nCalling this function during launch for every user was impacting\nstability, and in any case the dat collected wasn\u0027t that useful.\n\nThe only call site was removed in\nhttps://chromium-review.git.corp.google.com/c/chromium/src/+/7966023 .\n\nBug: 526890997\nChange-Id: I132c13a72c052aa440b602e761feac4040621960\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7984626\nAuto-Submit: Mark Cogan \u003cmarq@chromium.org\u003e\nCommit-Queue: Christian Dullweber \u003cdullweber@chromium.org\u003e\nReviewed-by: Adam Langley \u003cagl@chromium.org\u003e\nReviewed-by: Christian Dullweber \u003cdullweber@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1651052}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: f9901944e26d9ed5ce90d816f701815b3e41724a\n"
    },
    {
      "commit": "4987d40517d63b808123dc4a471b40089dadf848",
      "tree": "d8c4dc3bfd0ba60ead7e006c0a40b769e4779bfb",
      "parents": [
        "e2d2622e221430836dc74693e4ae6da61687334a"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Jun 23 09:45:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 09:47:17 2026"
      },
      "message": "[crypto] Add UMA metrics for attestation key operations\n\nIntroduce distinct UMA metrics for attestation key operations to\ndifferentiate them from standard unexportable key operations.\n\nPreviously, operations on attestation keys were either not fully tracked\nor were conflated with regular unexportable keys. This change adds\nspecific TPMOperation enum values for the creation, wrapping, and\nexporting of attestation keys.\n\nThe Windows unexportable key provider is updated to pass the KeyUsage\ncontext during key loading and creation, ensuring that the new\nattestation-specific operations are logged accurately. This provides\nfiner-grained visibility into the performance and reliability of TPM\nattestation features.\n\nBug: 501306775\nChange-Id: Ie480ba7e5717f77573b30790969c6e036a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7967539\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1650876}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 4b3be860aa032cbbf851f1c9ec03d12ce70560ef\n"
    },
    {
      "commit": "e2d2622e221430836dc74693e4ae6da61687334a",
      "tree": "70aba000615089dfed2ed77ce2a6b30bd77f4cfe",
      "parents": [
        "0b5658b5d627b18582d24df6eefcf77aa096d751"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Jun 23 09:45:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 09:46:55 2026"
      },
      "message": "[crypto] Use transparent lookups in UnexportableKey tests\n\nMigrate the `keys_` tracking container in the metrics unittests from\n`std::set` to `absl::flat_hash_set`. This utilizes the transparent\nhasher and equality helpers (`base::TransparentHashAs` and\n`base::TransparentEqualAs`) to enable heterogeneous lookups.\n\nThis change allows querying, erasing, and looking up keys directly using\n`base::span\u003cconst uint8_t\u003e`. Previously, operations like `contains` and\n`erase` required allocating and copying the span\u0027s contents into a\ntemporary `std::vector\u003cuint8_t\u003e`, which is no longer necessary.\n\nChange-Id: Ie482bdbbca11a5b383eaadc3eb10a03a6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7963020\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nAuto-Submit: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1650875}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 25254a60ab0bef9c0616f8ceff8641d36c2f0f55\n"
    },
    {
      "commit": "0b5658b5d627b18582d24df6eefcf77aa096d751",
      "tree": "1ee560840d8fd87a9752815fc21e9f2e122cd126",
      "parents": [
        "c6e7b302907d84580185b711dd8f84a0f725342c"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Jun 22 06:01:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 22 06:03:57 2026"
      },
      "message": "[dbsc] Implement C++ wrapper around Rust TPM FFI parser\n\nThis change introduces `crypto::tpm_parser`, a C++ wrapper layer over\nthe Rust TPM FFI parser. Previously, callers interacted directly with\nthe FFI boundary and performed local signature verification.\n\nThis update improves type safety and ergonomics by:\n\n- Introducing C++ types and returning `base::expected` for better error\n  handling across the FFI boundary.\n- Moving TPM signature verification (`VerifySignature`) out of call\n  sites and into the centralized C++ wrapper, leveraging existing\n  BoringSSL-backed C++ verification (`crypto::sign::Verify`).\n- Renaming Rust verification structs to reflect that they now strictly\n  perform parsing operations, deferring cryptographic verification to\n  C++.\n- Refactoring `unexportable_key_win.cc` to consume the new, safer C++\n  API and metrics logging structure.\n\nNO_IFTTT\u003dcrypto/tpm_parser.h is a new file\n\nBug: 501306222\nChange-Id: Idb68151021fb35f29bff014ba80fc3536a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7956124\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1650133}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 66b2c00f57c854f621e5380759f75576bb43bacf\n"
    },
    {
      "commit": "c6e7b302907d84580185b711dd8f84a0f725342c",
      "tree": "fcc34761f7bed57fd99914a1b1ac0a4b58db5686",
      "parents": [
        "73b534685dc5ecd46afe7142c1ffee00b557824e"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed Jun 17 20:58:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 17 21:00:54 2026"
      },
      "message": "[dbsc] Move TPM signature verification from Rust to C++\n\nMigrate the verification of TPM signatures from Rust to C++ to leverage\nexisting C++ cryptographic infrastructure. The Rust implementation is\nsimplified to focus solely on parsing the TPM-specific signature format\n(TPMT_SIGNATURE) and returning its raw components.\n\nKey modifications include:\n\n- Replacing the Rust-based `verify_signature` function with a parser\n  that extracts raw RSA or ECDSA components.\n- Introducing utility functions in `crypto/ecdsa_utils` to convert raw\n  ECDSA signatures (concatenated R and S) into DER format.\n- Implementing verification logic in `unexportable_key_win.cc` using the\n  standard `crypto::sign` namespace.\n- Removing the BoringSSL dependency from the Rust `tpm` target to\n  streamline the build.\n\nBug: 501306222\nChange-Id: I733755e876d1f3616ad032a8317364b16a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7946121\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1648568}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: b46cf7820f5b1054e4b11008c30664065b1ef917\n"
    },
    {
      "commit": "73b534685dc5ecd46afe7142c1ffee00b557824e",
      "tree": "862bf9a08a6088b978281ce0c8b3cf90ca7c5207",
      "parents": [
        "969bf379a1dc9f43e4b41d3358432b24a18142a8"
      ],
      "author": {
        "name": "Louis Romero",
        "email": "lpromero@google.com",
        "time": "Tue Jun 16 14:23:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 14:25:47 2026"
      },
      "message": "Fix memory leak in RecordKeychainMigrationStatus\n\nRecordKeychainMigrationStatus was using NSToCFOwnershipCast to convert\nNSMutableDictionary queries to CFDictionaryRef parameters for\nKeychainV2::GetInstance().ItemCopyMatching. NSToCFOwnershipCast uses\n__bridge_retained under the hood, which increments the retain count.\nBecause the returned CFDictionaryRef was not wrapped in a\nScopedCFTypeRef or manually released, the dictionary was leaked.\n\nThis CL replaces NSToCFOwnershipCast with NSToCFPtrCast, which uses\na non-retaining __bridge cast. This is safe because the dictionaries\nare ARC-managed and remain in scope for the duration of the function.\n\nFixed: 524555692\nChange-Id: I43426becfc619ef184b5b170129bc22935168d82\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7949501\nAuto-Submit: Louis Romero \u003clpromero@google.com\u003e\nCommit-Queue: Louis Romero \u003clpromero@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1647529}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 997b56352e2a9fc99991c56fcb91e66e2d572ea1\n"
    },
    {
      "commit": "969bf379a1dc9f43e4b41d3358432b24a18142a8",
      "tree": "cb8a6f13346127b568933f3d78784337f9e484c4",
      "parents": [
        "07d5be70e9f3dd2ac6d62aaaaa4d410a8f3ed4c1"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Jun 15 12:35:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 15 12:37:48 2026"
      },
      "message": "[uma] Centralize TPM operation/signature variants and add KeyCertification\n\nBug: 501306364\nChange-Id: Ib6828fcd15dba213b1dd004f20e2f3f36a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7879843\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1646744}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 13e896c565dba628b706fb3d93bb238ab0b8d666\n"
    },
    {
      "commit": "07d5be70e9f3dd2ac6d62aaaaa4d410a8f3ed4c1",
      "tree": "639c926b37972520ed73c6dd03958ad6c2fd4323",
      "parents": [
        "4d0e5218f03a77ce9e3f7ba1b3170b704bb32470"
      ],
      "author": {
        "name": "Avi Drissman",
        "email": "avi@chromium.org",
        "time": "Thu Jun 11 15:04:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 11 15:06:31 2026"
      },
      "message": "Switch to a modern value\n\nkLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch is deprecated in\nfavor of LAPolicyDeviceOwnerAuthenticationWithBiometricsOrCompanion.\nBecause they have the exact same value, switch to the modern spelling.\n\nBug: none\nChange-Id: I1bc56193cd25ac0de4ee6238141614f76a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7922091\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nAuto-Submit: Avi Drissman \u003cavi@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1645375}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 5d4394f1a08e9ad751d1a9d42a679ba79096232a\n"
    },
    {
      "commit": "4d0e5218f03a77ce9e3f7ba1b3170b704bb32470",
      "tree": "8adcfb481b361fae02daa7080974764ea63c9c2d",
      "parents": [
        "885652d31103a87a3ef68e1cfd582570c3a7abc1"
      ],
      "author": {
        "name": "Jeffrey Gour",
        "email": "jeffreygour@microsoft.com",
        "time": "Tue Jun 09 16:47:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 09 16:50:06 2026"
      },
      "message": "Move SecureZeroBuffer to crypto/secure_util for reusability\n\nThis CL moves SecureZeroBuffer from the internal namespace in\nprocess_bound_string.h/cc to secure_util.h/cc in order to improve the\nability to use the method outside of ProcessBoundString. Specifically,\nit will be used by the new Encrypted\u003ctypename StringType\u003e class being\nintroduced in https://crrev.com/c/7904562.\n\nBug: 513276101\nChange-Id: Ie893de151e0974f985c7384a9c556fa8c93cf3c2\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7909601\nReviewed-by: Will Harris \u003cwfh@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jeffrey Gour \u003cjeffreygour@microsoft.com\u003e\nCr-Commit-Position: refs/heads/main@{#1644048}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: fb1bff6f56938760362582f4883ddfd72677eb9c\n"
    },
    {
      "commit": "885652d31103a87a3ef68e1cfd582570c3a7abc1",
      "tree": "b30f9c78b5fc2c21d0ae2aad9a9a6d71bf45d905",
      "parents": [
        "288b962e8bb1a182ab8543dfbfcadcdfdffb4b1e"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Fri Jun 05 08:56:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 05 08:58:44 2026"
      },
      "message": "[crypto] Implement TPM key certification metrics\n\nMeasure the latency and success rate of TPM key certification operations\nvia UMA. This change adds reporting for the kKeyCertification operation\nto monitor the performance of the Certify operation in Device Bound\nSession Credentials.\n\nTo support this, the key deletion logic in unexportable_key_metrics.cc\nis generalized to handle both signing and attestation keys. A new\nhelper, wrap_delete_key, is introduced to manage unique_ptr deleters\nmore efficiently. Additionally, unit tests are updated to verify the new\nhistograms, and the metrics unit test file is moved to the common source\nlist in the BUILD.gn file.\n\nBug: 501306775\nChange-Id: I32481ea4134055a35a886f957b925b066a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7890375\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1642217}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: cd24e3f897e3049fa7fa5065f0fb2c05253f768a\n"
    },
    {
      "commit": "288b962e8bb1a182ab8543dfbfcadcdfdffb4b1e",
      "tree": "2a6ebffc74fafe347e671dd82a19978f4db39426",
      "parents": [
        "e46aa188a53ad1d165021041adecf3a22579599a"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Fri Jun 05 08:55:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 05 08:58:24 2026"
      },
      "message": "[crypto] Implement software attestation key provider\n\nThis change implements the UnexportableAttestationKey interface for the\nsoftware-backed unsecure key provider. This allows the provider to\nemulate hardware-backed attestation by generating synthetic TPM 2.0\ncertification statements and formatting signatures into TPM-compatible\nstructures.\n\nKey modifications:\n\n- Refactor the software signing key implementation into a template base\n  class to share common logic between signing and attestation.\n- Implement SoftwareAttestationKey::CertifySlowly to generate\n  TPMS_ATTEST structures and format the result as an\n  AttestationStatement.\n- Add helper functions for serializing TPM-compatible ECDSA and RSA\n  signatures from DER-encoded signatures.\n- Update SoftwareProvider to support generating and loading wrapped\n  attestation keys.\n\nThis implementation enables end-to-end testing of features relying on\ndevice attestation, such as Device Bound Session Credentials (DBSC), in\nenvironments without physical TPM hardware.\n\nBug: 501306775\nChange-Id: I913fdbdfa3ac5846f4c4f6b678f243306a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7902311\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1642216}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: fbb4e1861db4b71a23e524ffebe964cba55bebcb\n"
    },
    {
      "commit": "e46aa188a53ad1d165021041adecf3a22579599a",
      "tree": "cf530c81c8ee7d8ebc287d2f53cb4f5d4fb685e0",
      "parents": [
        "626fffec86d3f0cbb8dbbfce893c527163de8a8a"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Jun 04 00:49:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jun 04 00:50:24 2026"
      },
      "message": "crypto/aead: add AES-128-GCM\n\nRequired to support components/gcm_driver.\n\nAI-Model: none\nBug: 427242312\nChange-Id: I7a5acd1b7b66e0dc9d625460a4306300b0ae3946\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7900060\nCommit-Queue: Matt Mueller \u003cmattm@chromium.org\u003e\nCommit-Queue: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Matt Mueller \u003cmattm@chromium.org\u003e\nAuto-Submit: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1641350}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c423cb9708fd579fb164176a4c589e264d61145c\n"
    },
    {
      "commit": "626fffec86d3f0cbb8dbbfce893c527163de8a8a",
      "tree": "93ef32d4eb73fc42033f6cdc405557804855ca3a",
      "parents": [
        "a9ab0ff597ed2e9c1924dbdf2bd104e3400a16d5"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue Jun 02 09:28:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 09:31:01 2026"
      },
      "message": "[dbsc] Implement TPM key certification on Windows\n\nThis change implements the `CertifySlowly` interface for unexportable\nattestation keys on Windows. This allows cryptographically proving that\na signing key is resident in the same Trusted Platform Module (TPM) as\nthe attestation key.\n\nThe implementation leverages the Windows TPM Base Services (TBS) API to\nsubmit raw `TPM2_Certify` commands to the hardware. To ensure memory\nsafety when handling these complex structures, the command construction,\nresponse parsing, and signature verification are performed by a\nRust-based parser. This addresses the need for a memory-safe way to\nparse raw TPM response structures, such as `TPM2B_ATTEST` and\n`TPMT_SIGNATURE`.\n\nNew UMA histograms are introduced to monitor the reliability of these\noperations, covering TBS API status codes, TPM response codes, and\nresults from the Rust-based verification logic.\n\nBug: 501306222\nChange-Id: Ifbe9e275833a95d5c6202b9741a0c77a6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7863844\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Sebastien Lalancette \u003cseblalancette@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1640028}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 8f99b231f4647ea25ecabc2e7ce53e8ca914d7d7\n"
    },
    {
      "commit": "a9ab0ff597ed2e9c1924dbdf2bd104e3400a16d5",
      "tree": "16bf8103ce9e2c6f35fc6b8e2f835acd051e4efe",
      "parents": [
        "058af966a3ba02ef1321e58a3bf40c1b5266d3c7"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu May 28 07:56:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 07:58:34 2026"
      },
      "message": "[dbsc] Implement TPM signature verification in Rust\n\nImplement cryptographic signature verification for TPM2_Certify\nresponses in Rust using bssl_crypto. This change adds support for\nparsing the TPMT_SIGNATURE structure and verifying both RSA PKCS#1 and\nECDSA P-256 signatures.\n\nBy performing these checks in Rust, we ensure that the processing of\npotentially untrusted hardware responses remains in a memory-safe\nenvironment, fulfilling the \"Rule of 2\" requirements for the Device\nBound Session Credentials (DBSC) implementation. This verification step\nconfirms that the attestation statement was indeed signed by the\nexpected hardware key.\n\nBug: 501306222\nChange-Id: I3c0848a570b3bd36466472aa9bf290c56a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7843193\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1637527}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 2c4702cf572a7961fd20e8267eddb19c3dc614c2\n"
    },
    {
      "commit": "058af966a3ba02ef1321e58a3bf40c1b5266d3c7",
      "tree": "c9194f39919e6b60d9a85cfc9a5d6d618cdf7a8e",
      "parents": [
        "754c888afc968f7e8a6fa1f08bb9928fa6ab371f"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Wed May 27 09:55:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 09:57:39 2026"
      },
      "message": "[dbsc] Implement Rust TPM response parser for key certification\n\nThis CL introduces the memory-safe Rust parser for TPM2_Certify\nresponses, specifically validating the TPM2B_ATTEST and TPMT_SIGNATURE\nstructures. The parsed results are securely bounded and returned across\nthe CXX boundary via a CertifyResponse struct.\n\nBug: 501306222\nChange-Id: Iacaf6b6c6325c0969b3939ef2dd782436a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7830199\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1636806}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 962f4cd8c41baab61806dcd5bdf1a8ce3afe793b\n"
    },
    {
      "commit": "754c888afc968f7e8a6fa1f08bb9928fa6ab371f",
      "tree": "b7a2f9b8ef135d507756390415f158e2c70bc40e",
      "parents": [
        "a0254471c8932e2fb5cb668503dfd63bbd36662e"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Thu May 21 08:21:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 08:24:29 2026"
      },
      "message": "[dbsc] Implement Rust TPM parser for certify command construction\n\nImplement a memory-safe parser and builder for TPM 2.0 structures in\nRust, specifically for constructing TPM2_Certify commands. This\naddresses the requirement to move complex serialization of untrusted\ndata into a memory-safe language, adhering to the \"Rule of 2.\"\n\nThe change introduces:\n\n- A Writer abstraction for safe big-endian buffer generation.\n- A Reader abstraction for parsing TPM responses.\n- Support for various signature schemes and hash algorithms.\n- A cxx bridge for interoperability with existing C++ components.\n\nThis ensures that the Device Bound Session Credentials (DBSC) logic can\nsafely interact with the TPM without the memory safety risks associated\nwith manual buffer manipulation in C++.\n\nFixed: 501306595\nChange-Id: I87822f532bc8f4ee2e7c618d48fa370f6a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7828681\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nReviewed-by: Daniel Cheng \u003cdcheng@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1634109}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: e845bc46f9c9c56d2f104371724cc360ccbfe24b\n"
    },
    {
      "commit": "a0254471c8932e2fb5cb668503dfd63bbd36662e",
      "tree": "4360911822e6da49b580a4751bf16bb773e47eba",
      "parents": [
        "9b541ab7660d2ed481502c03d63e30b65684b398"
      ],
      "author": {
        "name": "Avi Drissman",
        "email": "avi@chromium.org",
        "time": "Tue May 19 16:20:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 16:21:35 2026"
      },
      "message": "Don\u0027t leak a CFString\n\nCFStringCreateCopy returns an object that needs to be released.\nCFArrayAppendValue retains the value passed in, so passing a copy\ndirectly into it will leak that value.\n\nThe value, keychain_access_group_, is created in the constructor of\nFakeKeychainV2, so there\u0027s no need to create a copy of it.\n\nBug: none\nChange-Id: Idb721603be572f26a05f322c16568e526a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7857749\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCommit-Queue: Avi Drissman \u003cavi@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1632902}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: c2e021d3e55f6a18b56cb770bbea11edf8685a77\n"
    },
    {
      "commit": "9b541ab7660d2ed481502c03d63e30b65684b398",
      "tree": "7ca9a2d7f1f309ce0b3a56372ff8c1d1a016e888",
      "parents": [
        "65f51c94e7a4a150717b83546467ae68bd2f11de"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue May 19 16:00:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 16:01:42 2026"
      },
      "message": "[dbsc] Implement restricted attestation key support on Windows\n\nAdd support for generating and loading Attestation Identity Keys (AIK)\nusing the Microsoft Platform Crypto Provider. These keys are now\nproperly restricted by setting the `NCRYPT_PCP_IDENTITY_KEY` usage\npolicy during generation. This ensures that the TPM reserves the keys\nfor attestation purposes and prevents them from being used to sign\narbitrary data.\n\nThis change refactors the Windows unexportable key provider to share\nimplementation details between signing and attestation keys:\n\n- Introduces a `WinKeyImpl` template to manage common key properties.\n- Consolidates key creation and loading logic into internal helper\n  functions.\n- Implements the `AttestationKeyWin` wrapper class.\n- Updates `DuplicatePlatformKeyHandle` to work with the base\n  `UnexportableKey` interface.\n\nThis implementation provides the necessary Windows-specific attestation\nkey infrastructure and ensures keys are generated with the required\nrestricted usage policy for hardware-backed identity.\n\nBug: 501307116, 501305842\nChange-Id: I49a9ad47b176d5d2b068a1d1345ad8e46a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7827868\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: Elly \u003cellyjones@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1632870}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: d4e5f816d3ae9739abdf0f0f411b756e3df0400d\n"
    },
    {
      "commit": "65f51c94e7a4a150717b83546467ae68bd2f11de",
      "tree": "c07df4c410f88c3831f8bcf72af86dd4a5abe759",
      "parents": [
        "2cef556cb279ec43720dd08792f024ceb3c55394"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Tue May 19 08:17:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 08:19:45 2026"
      },
      "message": "[dbsc] Rename MockUnexportableKey to MockUnexportableSigningKey\n\nRename the mock unexportable key class and its associated helper methods\nto explicitly indicate they refer to signing keys. This disambiguation\nis necessary to support the introduction of attestation keys for Device\nBound Session Credentials.\n\nThe following renames were performed:\n\n- `MockUnexportableKey` to `MockUnexportableSigningKey`.\n- `AddNextGeneratedKey` to `AddNextGeneratedSigningKey`.\n- `next_generated_keys_` to `next_generated_signing_keys_`.\n\nThese updates ensure type safety and clarity as the crypto component\nexpands to support hardware-backed certification and distinct key roles\nfor attestation and signing.\n\nBug: 501306819, 501306500, 501307389\nChange-Id: I899149cd2ddcc2f0568cd3360b29abe66a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7827656\nReviewed-by: Alex Ilin \u003calexilin@chromium.org\u003e\nReviewed-by: Slobodan Pejic \u003cslobodan@chromium.org\u003e\nCommit-Queue: Jan Wilken Dörrie \u003cjdoerrie@chromium.org\u003e\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nCr-Commit-Position: refs/heads/main@{#1632692}\nNOKEYCHECK\u003dTrue\nGitOrigin-RevId: 17ddc0a615f7c313a98f5132fc3daf8c86d990d1\n"
    }
  ],
  "next": "2cef556cb279ec43720dd08792f024ceb3c55394"
}
