Smart card sign-in support in cryptohomed |
|||||||||||
Issue descriptionThis bug tracks the work that has to be done on the cryptohomed side in order to support the smart card enterprise user sign-in in Chrome OS (launch bug 791559). ⛆ |
|
|
,
Feb 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/46422da23c67d6c2aa089ef918b7535343fbe9e6 commit 46422da23c67d6c2aa089ef918b7535343fbe9e6 Author: Maksim Ivanov <emaxx@google.com> Date: Fri Feb 09 07:42:17 2018 trunks: Roll clang-formatting on tpm_generated.cc This makes formatting of tpm_generated.* in accordance with the current clang-format behavior. The CL was generated by simply running generator/generator.py (without any modifications in the input data). BUG=chromium:806788 TEST=existing tests (no change of behavior is expected) Change-Id: Ia844e223860df0b7fadbfe7bcac63a3e7d4144e3 Reviewed-on: https://chromium-review.googlesource.com/906548 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/46422da23c67d6c2aa089ef918b7535343fbe9e6/trunks/tpm_generated.cc [modify] https://crrev.com/46422da23c67d6c2aa089ef918b7535343fbe9e6/trunks/tpm_generated.h [modify] https://crrev.com/46422da23c67d6c2aa089ef918b7535343fbe9e6/trunks/README.md
,
Feb 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/system_api/+/0eae09da9542bf59d327d00d641b7d53078fd269 commit 0eae09da9542bf59d327d00d641b7d53078fd269 Author: Maksim Ivanov <emaxx@google.com> Date: Wed Feb 21 02:16:31 2018 system_api: New fields and messages for challenge-response cryptohome keys Adds support for challenge-response cryptohome keys which is based on RSA signing keys: * Extend KeyData with a new type enum and new fields that describe public information of an RSA key; * Add KeyChallengeRequest that will be a parameter for the new KeyChallenge signal and will hold the challenge blob and the reference to the challenged RSA key; * Add KeyChallengeResponse that will be a parameter for the new RespondKeyChallenge method and will hold the RSA signature. BUG=chromium:806788 TEST=none (verify that protos compile successfully) Change-Id: I0c7168668daf7bb22509962ce569235a2a5ac381 Reviewed-on: https://chromium-review.googlesource.com/911797 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/0eae09da9542bf59d327d00d641b7d53078fd269/dbus/cryptohome/key.proto [modify] https://crrev.com/0eae09da9542bf59d327d00d641b7d53078fd269/dbus/cryptohome/rpc.proto
,
Feb 21 2018
Attaching the Design Doc here just in case (it was already attached to the launch bug): http://go/extended-login-smart-cards .
,
Feb 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/1831e1c98fa90bcf9ae2a87dcd8d5d79b16d3455 commit 1831e1c98fa90bcf9ae2a87dcd8d5d79b16d3455 Author: Maksim Ivanov <emaxx@google.com> Date: Tue Feb 27 03:28:37 2018 cryptohome: Add Certified Migratable Keys into TPM 1.2 delegate Make the delegate, which is created during owning TPM 1.2, include the following additional permissions: * TPM_DELEGATE_AuthorizeMigrationKey (for calling TPM_AuthorizeMigrationKey), * TPM_DELEGATE_CMK_ApproveMA (for calling TPM_CMK_ApproveMA), * TPM_DELEGATE_CMK_CreateTicket (for calling TPM_CMK_CreateTicket). These functions will be used for working with Certified Migratable Keys, which will be part of the implementation of the signature-based challenge-response cryptohome protection. In particular: 1. Signature-protected secret construction: will use TPM_CMK_ApproveMA to create a CMK associated with the key to be challenged; 2. Secret unsealing after obtaining the requested signature: will use TPM_AuthorizeMigrationKey to allow the CMK migration onto the just-generated destination key, and will use TPM_CMK_CreateTicket to verify the required signature and obtain the ticket for performing the CMK migration. BUG=chromium:806788 TEST=existing tests: unit tests, the platform_Attestation autotest Change-Id: I17a63c1dc6c828b5fbafa19995f1eeaf3a42cb55 Reviewed-on: https://chromium-review.googlesource.com/929761 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/1831e1c98fa90bcf9ae2a87dcd8d5d79b16d3455/cryptohome/tpm_impl.cc
,
Feb 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/cab8a0c583c6ca107fdb5104190566e83af043e8 commit cab8a0c583c6ca107fdb5104190566e83af043e8 Author: Maksim Ivanov <emaxx@google.com> Date: Tue Feb 27 13:14:33 2018 cryptohome: Clean up "using" of types in global scope in headers Remove usages of the "using" directive in global scope in headers that just save typing, because these directives take an effect on all files that include them too. Such usages of "using" are against the style guide. BUG=chromium:806788 TEST=none (existing unit tests) Change-Id: Ic01896b438a068e3c9bffad6520dcc2632a29470 Reviewed-on: https://chromium-review.googlesource.com/932501 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/boot_lockbox_unittest.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_user_session.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/boot_attributes_unittest.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_keystore.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_tpm.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/tpm_live_test.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/service_monolithic.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_platform.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_keystore.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_platform.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/service.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/homedirs_unittest.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/stub_tpm.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_lockbox.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/dircrypto_data_migrator/migration_helper_unittest.cc [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mount_task.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/attestation_task.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_tpm.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_user_session.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/mock_service.h [modify] https://crrev.com/cab8a0c583c6ca107fdb5104190566e83af043e8/cryptohome/service_distributed.cc
,
Feb 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/556757f0f9ffc0305f09ba2623a820b375ed1c9d commit 556757f0f9ffc0305f09ba2623a820b375ed1c9d Author: Maksim Ivanov <emaxx@google.com> Date: Tue Feb 27 15:32:06 2018 trunks: Fix marshalling of size in complex TPM2B_ structs 1. Fix incorrect serializing and parsing of complex TPM2B_ structures in cases where the "size" field is zero. 2. Make consistent and enforce the convention that the "size" field for such structures is EITHER zero OR sizeof of the enclosed structure (but NOT the length of the marshalled representation nor any other value). In detail, #1 is, as believed, bringing the implementation in conformance to the specs: > When the type of the second parameter in the TPM2B_ structure is not BYTE, the > value of the size field > shall either be zero indicating that no structure is to be unmarshaled; or it > shall be identical to the number > of octets unmarshaled for the second parameter. (TPM 2.0 Part 2 Chapter 10.4 "Sized Buffers"). So before this CL, the serializing and parsing functions didn't handle the case of zero size that is decribed in the quote above. Instead, they always behaved by serializing/parsing the enclosed structure. For example, a full-zeroed TPM2B_SENSITIVE was serialized as "\0\x6\0\0\0\0\0\0", instead of just "\0\0". The CL fixes the behavior to produce the latter. (Which allows to pass such "empty" structures as TPM function arguments when it's required.) And the change #2 is, basically, about more consistence in the code, because before this CL one part of code (e.g., the Make_* functions) was putting the value of sizeof into the size field, while the other part of code (e.g., the Parse_* functions) was putting the length of the marshalled representation. The CL makes all of them to use the former. BUG=chromium:806788 TEST=existing and new unit tests Change-Id: Ied11b00f2ead53dac345885915b7d073775f9417 Reviewed-on: https://chromium-review.googlesource.com/906930 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Darren Krahn <dkrahn@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/556757f0f9ffc0305f09ba2623a820b375ed1c9d/trunks/generator/generator.py [modify] https://crrev.com/556757f0f9ffc0305f09ba2623a820b375ed1c9d/trunks/tpm_generated.cc [modify] https://crrev.com/556757f0f9ffc0305f09ba2623a820b375ed1c9d/trunks/tpm_generated_test.cc
,
Feb 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e commit 12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e Author: Maksim Ivanov <emaxx@google.com> Date: Tue Feb 27 20:09:05 2018 trunks: Stricter checks of blob parsing leftovers This CL throws in a few more checks that the data buffer was completely parsed, without a single byte staying left, after performing the TPM types parsing. In other words, this change is effectively adding more assertions on the input data format. The expectation is that nothing should break as a result of this change, assuming that the existing client code calls trunks functions with correct inputs. BUG=chromium:806788 TEST=existing and new unit tests Change-Id: Iaaac11df3619b5ce04ba6465b9d5085a76b75561 Reviewed-on: https://chromium-review.googlesource.com/908553 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Darren Krahn <dkrahn@chromium.org> [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/resource_manager_test.cc [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/resource_manager.cc [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/tpm_utility_test.cc [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/hmac_authorization_delegate_test.cc [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/blob_parser.cc [modify] https://crrev.com/12b6ca61aaaa94bc806f7ba082d50dd76c6e0c0e/trunks/hmac_authorization_delegate.cc
,
Mar 1 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/ec3c50302d4cd15c5ddf6b8780900382b70589e3 commit ec3c50302d4cd15c5ddf6b8780900382b70589e3 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Mar 01 20:39:03 2018 trunks: Add library support for TPM2_PolicySigned TPM2_PolicySigned allows building signature-based authorization, which requires the caller to provide a correct signature for the given blob (which incorporates, besides others, the TPM-generated nonce). This CL adds high-level API pieces that allow to use this feature from the client code: * Obtaining the current TPM-generated nonce; * Loading an RSA public key into the TPM; * Updating a policy session with a signature-based auth. BUG=chromium:806788 TEST=existing and new unit tests Change-Id: Id53b5c556031f9e0398b8284ca6fbcb465f3a32e Reviewed-on: https://chromium-review.googlesource.com/902902 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/mock_policy_session.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/trunks_factory_for_test.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/policy_session_impl.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/hmac_authorization_delegate.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/mock_tpm_utility.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/policy_session_test.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/tpm_utility_impl.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/attestation/common/tpm_utility_v2.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/tpm_utility_impl.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/hmac_authorization_delegate.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/tpm_utility_test.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/hmac_authorization_delegate_test.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/policy_session_impl.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/authorization_delegate.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/policy_session.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/mock_authorization_delegate.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/tpm_utility.h [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/password_authorization_delegate.cc [modify] https://crrev.com/ec3c50302d4cd15c5ddf6b8780900382b70589e3/trunks/password_authorization_delegate.h
,
Mar 5 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/0b52deb81094774a6851a2ec8ede25f34cc86e9e commit 0b52deb81094774a6851a2ec8ede25f34cc86e9e Author: Maksim Ivanov <emaxx@google.com> Date: Mon Mar 05 19:33:32 2018 cryptohome: New methods/signals for challenge-response keys * KeyChallenge signal that will be used for sending the challenge data to the browser (in the first version, this will contain the challenge blob and the reference to the challenged RSA key); * RespondKeyChallenge method that will be used for sending the challenge response data back from the browser (in the first version, this will contain the RSA signature blob). The CL just adds interface parts. There's no implementation behind the added methods/signals yet. BUG=chromium:806788 TEST=none CQ-DEPEND=CL:911797 Change-Id: I3437bfa38e2edcb1af3fa5fa320fb9c35478f59d Reviewed-on: https://chromium-review.googlesource.com/911799 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Mattias Nissler <mnissler@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/etc/Cryptohome.conf [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/service.h [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/interface.cc [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/interface.h [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/service.cc [modify] https://crrev.com/0b52deb81094774a6851a2ec8ede25f34cc86e9e/cryptohome/dbus_bindings/org.chromium.CryptohomeInterface.xml
,
Mar 10 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/760adb86ae148923221dbda84b0cc703e17f86eb commit 760adb86ae148923221dbda84b0cc703e17f86eb Author: Maksim Ivanov <emaxx@google.com> Date: Sat Mar 10 16:44:08 2018 cryptohome: Fix crash in PCRKeyTest live test on TPM 1.2 This fixes the PCRKeyTest live test to not extend the PCR with a blob of wrong length. The test supplied 6 bytes of data, while the the TPM 1.2 implementation requires the blob to be 20 bytes length, which was causing a CHECK hit. BUG=chromium:806788 TEST=run live test "cryptohome --action=tpm_live_test" - on leon (TPM 1.2 device) and on snappy (TPM 2.0 device) Change-Id: Ia0d9381562a48ac60dbf01551bfbfd7a673455ee Reviewed-on: https://chromium-review.googlesource.com/931525 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/760adb86ae148923221dbda84b0cc703e17f86eb/cryptohome/tpm_live_test.cc [modify] https://crrev.com/760adb86ae148923221dbda84b0cc703e17f86eb/cryptohome/tpm_live_test.h
,
Mar 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/aa6d80f754ac329f52c51000bd6ef06247393c78 commit aa6d80f754ac329f52c51000bd6ef06247393c78 Author: Maksim Ivanov <emaxx@google.com> Date: Sat Mar 17 03:55:33 2018 cryptohome: Bulletproof Nvram TPM live test Make the Nvram test successfully survive the case where the old Nvram data from the previous test execution persists. BUG=chromium:806788 TEST=manual: start TPM live test, terminate during the Nvram test, start again and check that it completes successfully Change-Id: If33e5c0fdb41e57fa83bf0a1fe3c4a323ccdd774 Reviewed-on: https://chromium-review.googlesource.com/966822 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/aa6d80f754ac329f52c51000bd6ef06247393c78/cryptohome/tpm_live_test.cc
,
Mar 18 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7ba2341a6baa07c15dbf19161a25883720347af0 commit 7ba2341a6baa07c15dbf19161a25883720347af0 Author: Maksim Ivanov <emaxx@google.com> Date: Sun Mar 18 04:35:00 2018 cryptohome: Extract TPM live tests into a standalone tool This addresses two goals: * Stop including the "live test" code into the release images of Chromium OS; * Fix tests that require TPM ownership on TPM 1.2, as they were breaking due to flags state disalignment comparing to the daemon. Now the approach is that the live tests tool must be executed only after the ownership is taken. BUG=chromium:806788 TEST=existing cryptohome tests; build cryptohome-dev-utils.gyp, deploy cryptohome-tpm-live-test onto a test device (used leon for TPM 1.2 and snappy for TPM 2.0), run cryptohome-tpm-live-test, check that the live tests complete successfully Change-Id: I21af19caa0ba64aef44e127958896e50a2f11c1b Reviewed-on: https://chromium-review.googlesource.com/951608 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [add] https://crrev.com/7ba2341a6baa07c15dbf19161a25883720347af0/cryptohome/cryptohome-libs.gypi [modify] https://crrev.com/7ba2341a6baa07c15dbf19161a25883720347af0/cryptohome/cryptohome.cc [modify] https://crrev.com/7ba2341a6baa07c15dbf19161a25883720347af0/cryptohome/cryptohome.gyp [add] https://crrev.com/7ba2341a6baa07c15dbf19161a25883720347af0/cryptohome/cryptohome-dev-utils.gyp [add] https://crrev.com/7ba2341a6baa07c15dbf19161a25883720347af0/cryptohome/cryptohome-tpm-live-test.cc
,
Mar 19 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/5d41fde3a19a06388c60dbb8a7d17b65042f5a69 commit 5d41fde3a19a06388c60dbb8a7d17b65042f5a69 Author: Maksim Ivanov <emaxx@google.com> Date: Mon Mar 19 01:44:11 2018 cryptohome: Signature-protected sealing with TPM2 Implement sealing of secret data to the specified public key, such that unsealing requires signing a challenge (a random nonce); the implementation is currently provided only for TPM 2.0. This sealing is based on the TPM2_PolicySigned functionality of TPM 2.0. The CL is also aiming at structuring the code so that the same internal APIs (SignatureSealingBackend and related) can be implemented for TPM 1.2 as well - but that will happen in future CLs. Besides mock-based unit tests, also a "live" test is provided, which allows to test the sealing and unsealing against real TPM's. BUG=chromium:806788 TEST=unit tests: Tpm2RsaSignatureSecretSealingTest.*; running live test on a real device (snappy) via cryptohome --action=tpm_live_test Change-Id: I7c2f2b1230fdb07c625a4becf04c2b78b46f6352 Reviewed-on: https://chromium-review.googlesource.com/914903 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/cryptohome-libs.gypi [add] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/signature_sealing_backend_tpm2_impl.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm_live_test.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm2_impl.cc [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm_impl.cc [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/stub_tpm.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm2_impl.h [add] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/signature_sealing_backend.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm_impl.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/cryptolib.cc [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/mock_tpm.h [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm2_test.cc [add] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/signature_sealing_backend_tpm2_impl.cc [add] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/signature_sealed_data.proto [modify] https://crrev.com/5d41fde3a19a06388c60dbb8a7d17b65042f5a69/cryptohome/tpm_live_test.cc
,
Mar 20 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/system_api/+/6b10ccb5ca2d236d25c32a160e5e7c6f9645d9b2 commit 6b10ccb5ca2d236d25c32a160e5e7c6f9645d9b2 Author: Maksim Ivanov <emaxx@google.com> Date: Tue Mar 20 02:21:45 2018 cryptohome: Constants for challenge-response methods * Add constants for the new cryptohome D-Bus method RespondKeyChallenge and signal KeyChallenge. * Prefix the ChallengeSignatureAlgorithm enum values to make them be more specific - these definitions belong to the outer scope. BUG=chromium:806788 TEST=none Change-Id: I789bcf354b58368794939ac7e7d79202bff7ce71 Reviewed-on: https://chromium-review.googlesource.com/964341 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ben Chan <benchan@chromium.org> [modify] https://crrev.com/6b10ccb5ca2d236d25c32a160e5e7c6f9645d9b2/dbus/cryptohome/key.proto [modify] https://crrev.com/6b10ccb5ca2d236d25c32a160e5e7c6f9645d9b2/dbus/cryptohome/dbus-constants.h
,
Mar 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/34babceaf98dba1369d091e449ba2c0021ddcb1e commit 34babceaf98dba1369d091e449ba2c0021ddcb1e Author: Maksim Ivanov <emaxx@google.com> Date: Wed Mar 21 05:21:38 2018 Add cryptohome-dev-utils package This will correspond to binaries that are useful for developers and can be used for autotests, but should be excluded from release builds. The new package is included into dev and test Chromium OS images. BUG=chromium:806788 TEST=cros_workon_make --board=${BOARD} cryptohome-dev-utils CQ-DEPEND=CL:951608 Change-Id: Id4f14e84a9e82cb8749f3ea31228875f997c1daa Reviewed-on: https://chromium-review.googlesource.com/951733 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org> [add] https://crrev.com/34babceaf98dba1369d091e449ba2c0021ddcb1e/chromeos-base/cryptohome-dev-utils/cryptohome-dev-utils-9999.ebuild [rename] https://crrev.com/34babceaf98dba1369d091e449ba2c0021ddcb1e/virtual/target-chromium-os-dev/target-chromium-os-dev-1-r30.ebuild [modify] https://crrev.com/34babceaf98dba1369d091e449ba2c0021ddcb1e/virtual/target-chromium-os-dev/target-chromium-os-dev-1.ebuild
,
Mar 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/36ca7f7d92f9671ab46765321546dcf6a0ddb09c commit 36ca7f7d92f9671ab46765321546dcf6a0ddb09c Author: Maksim Ivanov <emaxx@google.com> Date: Wed Mar 21 05:21:33 2018 Fix Trousers dependencies Fix discrepancy between DEPEND and RDEPEND. BUG=chromium:959964,chromium:806788 TEST=existing tests Change-Id: I6512038291cfe546d9a2f2d461f3e825551aa819 Reviewed-on: https://chromium-review.googlesource.com/960661 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org> [modify] https://crrev.com/36ca7f7d92f9671ab46765321546dcf6a0ddb09c/app-crypt/trousers/trousers-9999.ebuild
,
Mar 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a43f60fa3f7bdff033a9678dad36282f68f5a701 commit a43f60fa3f7bdff033a9678dad36282f68f5a701 Author: Maksim Ivanov <emaxx@google.com> Date: Wed Mar 21 05:21:20 2018 attestation: Fix memory leaks in TPM 1.2 ScopedTssMemory usages This fixes several instantiations of ScopedTssMemory to not leak the allocated memory. They were leaking because the zero TSS_HCONTEXT was provided to them, which was making the ScopedTssMemory destructor effectively a no-op. BUG= chromium:821825 ,chromium:806788 TEST=existing tests Change-Id: I945e9513caa3ea2255cbd7f66fde370715bce93d Reviewed-on: https://chromium-review.googlesource.com/962426 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/a43f60fa3f7bdff033a9678dad36282f68f5a701/attestation/common/tpm_utility_v1.cc
,
Mar 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/aac339cfdc67463b1defe88b330520fcae3660d2 commit aac339cfdc67463b1defe88b330520fcae3660d2 Author: Maksim Ivanov <emaxx@google.com> Date: Wed Mar 21 11:39:39 2018 cryptohome: Skip AIK loading for TPM 1.2 delegate creation Remove loading of the Attestation Identity Key before creating the TPM 1.2 delegate - as, presumably, this was a no-op that didn't affect the delegate creation in any way. The AIK used to be simply loaded and not passed anywhere explicitly; the Trousers' delegate creation procedures also don't seem to depend on whether the AIK is loaded or not. Besides removing unnecessary code, this change should also simplify writing TPM live tests that need to work with delegates. BUG=chromium:806788 TEST=existing tests; the "platform_Attestation" autotest on a TPM 1.2 device (e.g. leon) Change-Id: I49d679f5ac093af6f47e162eee2bff2347315c5c Reviewed-on: https://chromium-review.googlesource.com/939628 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Darren Krahn <dkrahn@chromium.org> [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/tpm2_impl.cc [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/attestation.cc [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/mock_tpm.cc [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/tpm_impl.cc [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/tpm2_impl.h [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/tpm_impl.h [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/stub_tpm.h [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/mock_tpm.h [modify] https://crrev.com/aac339cfdc67463b1defe88b330520fcae3660d2/cryptohome/tpm.h
,
Mar 21 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/aa81d1626b191acb2858c2d49ea442d72b3030bb commit aa81d1626b191acb2858c2d49ea442d72b3030bb Author: Maksim Ivanov <emaxx@google.com> Date: Wed Mar 21 11:39:41 2018 cryptohome: Fix memory leaks in TPM 1.2 ScopedTssMemory usages This fixes several instantiations of ScopedTssMemory to not leak the allocated memory. They were leaking because the zero TSS_HCONTEXT was provided to them, which was making the ScopedTssMemory destructor effectively a no-op. BUG= chromium:821825 ,chromium:806788 TEST=existing tests Change-Id: I9bbf3f09f2151d72a456b9d5396f386bd9dc8fe3 Reviewed-on: https://chromium-review.googlesource.com/957722 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Will Drewry <wad@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/aa81d1626b191acb2858c2d49ea442d72b3030bb/cryptohome/tpm_impl.cc
,
Mar 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7cdb60353a78335e1b3c6db8384ffe475fc62d80 commit 7cdb60353a78335e1b3c6db8384ffe475fc62d80 Author: Maksim Ivanov <emaxx@google.com> Date: Fri Mar 23 01:16:55 2018 cryptohome: Avoid killing "cryptohomeSOMETHING" on daemon stop Currently, the init scripts prescribe to kill all processes containing "cryptohome" as a substring whenever the cryptohomed stops. This CL changes this to kill only the "cryptohome" command-line-interface process (i.e. switches onto exact matching). BUG=chromium:806788 TEST=manual test: 1. start TPM live tests, in the meantime restart cryptohomed and check that the live tests continue working. 2. request a long operation using "cryptohome", in the meantime restart cryptohomed and check that the cryptohome process was killed. Change-Id: Ib1546fa54d47e87543a948beaa47760e7576825f Reviewed-on: https://chromium-review.googlesource.com/966603 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/7cdb60353a78335e1b3c6db8384ffe475fc62d80/cryptohome/init/cryptohomed.service [modify] https://crrev.com/7cdb60353a78335e1b3c6db8384ffe475fc62d80/cryptohome/init/cryptohomed-client.conf
,
Mar 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/autotest/+/21c967a7d7e40a8f8b2b7fff08d08676b512936f commit 21c967a7d7e40a8f8b2b7fff08d08676b512936f Author: Maksim Ivanov <emaxx@google.com> Date: Fri Mar 23 21:51:05 2018 cryptohome: Fix autotest's TPM own waiting This fixes the "wait_for_ownership" feature of the take_tpm_ownership() helper to not return preliminarily. This could happen because the 'Owned' flag is actually set by cryptohomed before the ownership tasks are completed. In other words, this status response is entirely possible today, and was causing issues with the old implementation: {'Ready': False, 'Being Owned': True, 'Password': '', 'Enabled': True, 'Owned': True} The fix is to consider the 'Being Owned' flag too. This flag is released by cryptohomed at the very end of the ownership procedure. BUG=chromium:806788 TEST=none Change-Id: I92947497b1cf21684ed1af0791167fac10f6bb0e Reviewed-on: https://chromium-review.googlesource.com/976224 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/21c967a7d7e40a8f8b2b7fff08d08676b512936f/client/cros/cryptohome.py
,
Mar 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/trousers/+/d7fa9879234533afab08f137e0f1efc36a5c17b9 commit d7fa9879234533afab08f137e0f1efc36a5c17b9 Author: Maksim Ivanov <emaxx@google.com> Date: Fri Mar 23 21:50:46 2018 Trousers: Fix resource leakage in ScopedTss* objects * ScopedTssObject (and all its template instantiations) was effectively always leaking the associated resource by forgetting to initialize the TSS_HCONTEXT. * Replace silent resource cleanup ignoring when TSS_HCONTEXT is zero with NOTREACHED - i.e. log on leaking when under Release mode, and crash when under Debug mode. BUG= chromium:821825 ,chromium:806788 TEST=existing tests Change-Id: Ie2c45a20412af09b543869167007ad4ba08ac4ab Reviewed-on: https://chromium-review.googlesource.com/959964 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/d7fa9879234533afab08f137e0f1efc36a5c17b9/src/include/trousers/scoped_tss_type.h
,
Mar 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/c135ec41a6d435833cf05b5833c28035770dd355 commit c135ec41a6d435833cf05b5833c28035770dd355 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Mar 29 17:25:22 2018 cryptohome-dev-utils: Add missing dep on ecryptfs Add ecryptfs into the cryptohome-dev-utils dependencies. This is follow-up to the build issue reported at https://chromium-review.googlesource.com/c/chromiumos/platform2/+/955283#message-eff0b17fe93bb4dbc1a8a5d67f37b0415987fb27 BUG=chromium:806788 TEST=existing test; manual test: emerge-${BOARD} -C sys-fs/ecryptfs-utils && emerge-${BOARD} -a cryptohome-dev-utils Change-Id: I8e4040c9e3de00e37e693d46bc715f7ab695ff5e Reviewed-on: https://chromium-review.googlesource.com/982615 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/c135ec41a6d435833cf05b5833c28035770dd355/chromeos-base/cryptohome-dev-utils/cryptohome-dev-utils-9999.ebuild
,
Mar 29 2018
,
Apr 7 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/671b8fcaf3354fe3c3ea3a42d7a63aeb04084093 commit 671b8fcaf3354fe3c3ea3a42d7a63aeb04084093 Author: Maksim Ivanov <emaxx@google.com> Date: Sat Apr 07 05:00:10 2018 trunks: Fix regression_test's of trunks_client This makes regression_test working again. These tests seem to have become outdated comparing to the trunks implementation. In detail: * Fix crashes due to passing null algorithms to signing operation with generate_hash=true: * SignTest(), * PolicyAuthValueTest(), * PolicyAndTest(), * PolicyOrTest(). * Fix decryption failures due to passing null algorithms, as AsymmetricEncrypt() and AsymmetricDecrypt() have different defaults: * PolicyAuthValueTest(), * PolicyAndTest(), * PolicyOrTest(), * PerformRSAEncryptAndDecrypt(). * Fix use of the disabled ECC: * IdentityKeyTest(). BUG=chromium:806788 TEST=Run "trunks_client --regression_test" on a TPM 2.0 device (e.g. snappy) Change-Id: I9258bb01e2e923842c3e42ad2f0bf5697b0c413c Reviewed-on: https://chromium-review.googlesource.com/939466 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/671b8fcaf3354fe3c3ea3a42d7a63aeb04084093/trunks/trunks_client_test.cc
,
Apr 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/9a949394698d42dec6417655ae2278a4bdd912b7 commit 9a949394698d42dec6417655ae2278a4bdd912b7 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Apr 12 01:09:02 2018 cryptohome: Prepare Tpm class for TPM 1.2 sign-sealing This CL does some preparation work for the implementation of signature-protected sealing with TPM 1.2: * Allow creating PCR-bound delegate; * Allow creating delegate with custom labels; * Add interface method for creating policy object with random password; * Add interface method for loading the RSA public key into Trousers; * Make some of TpmImpl private methods public; No change of functionality is expected after this CL. BUG=chromium:806788 TEST=TPM live tests Change-Id: Ia29e687b0930ea1854bf8b9aeb62e1bd732f19d8 Reviewed-on: https://chromium-review.googlesource.com/968847 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/tpm2_impl.cc [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/attestation.cc [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/mock_tpm.cc [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/tpm_impl.cc [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/tpm2_impl.h [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/tpm_impl.h [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/stub_tpm.h [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/mock_tpm.h [modify] https://crrev.com/9a949394698d42dec6417655ae2278a4bdd912b7/cryptohome/tpm.h
,
Apr 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/848dc7860bee992758c371f090cdbfedb520b1e9 commit 848dc7860bee992758c371f090cdbfedb520b1e9 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Apr 12 17:01:01 2018 cryptohome: Prepare CryptoLib class for TPM 1.2 sign-sealing This CL does some preparation work for the implementation of signature-protected sealing with TPM 1.2: * Add a method for decrypting from RSA OAEP with custom label. No change of functionality is expected after this CL. BUG=chromium:806788 TEST=new unit tests: "CryptoLib*" Change-Id: I6d1c624b19db3bac4150242d5fe9a839448f9920 Reviewed-on: https://chromium-review.googlesource.com/968848 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [add] https://crrev.com/848dc7860bee992758c371f090cdbfedb520b1e9/cryptohome/cryptolib_unittest.cc [modify] https://crrev.com/848dc7860bee992758c371f090cdbfedb520b1e9/cryptohome/cryptolib.cc [modify] https://crrev.com/848dc7860bee992758c371f090cdbfedb520b1e9/cryptohome/cryptohome.gyp [modify] https://crrev.com/848dc7860bee992758c371f090cdbfedb520b1e9/cryptohome/cryptolib.h
,
Apr 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/d9f219f4362023533c9256d5599c93a5f7dbd87c commit d9f219f4362023533c9256d5599c93a5f7dbd87c Author: Maksim Ivanov <emaxx@google.com> Date: Mon Apr 16 16:20:40 2018 cryptohome: Minor improv for TPM2 signature sealing * Persist the list of bound PCR indexes; * Safe cast of PCR indexes; * Use std::make_unique instead of base::MakeUnique; BUG=chromium:806788 TEST=unit tests: Tpm2RsaSignatureSecretSealingTest.*; TPM live tests: cryptohome-tpm-live-test Change-Id: Ia95580a592ec544bd38a093999569fcfc23142fe Reviewed-on: https://chromium-review.googlesource.com/999518 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/signature_sealing_backend_tpm2_impl.h [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/tpm_live_test.cc [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/signature_sealing_backend.h [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/tpm2_test.cc [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/signature_sealing_backend_tpm2_impl.cc [modify] https://crrev.com/d9f219f4362023533c9256d5599c93a5f7dbd87c/cryptohome/signature_sealed_data.proto
,
Apr 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/782a793f4dcc20643502078d4d07823972332e33 commit 782a793f4dcc20643502078d4d07823972332e33 Author: Maksim Ivanov <emaxx@google.com> Date: Tue Apr 24 13:22:37 2018 cryptohome: Make MountEx two-phased - gen credentials first Split the MountEx worker job (DoMountEx) into two functions. The first function only does some input parameters validation and builds the credentials object, while all state-depending and state-changing mount operations are moved into the second function. Both parts are still executed synchronously currently - in order to preserve the previous semantics of MountEx, which was to work on the worker thread as a *single* job, which implies that the order of operations was preserved. This is preparation for challenge-response based credentials implementation, for which the credentials object construction will be an asynchronous operation (involving non-blocking inter-process requests). The split made in this CL allows to avoid side effects of state changing during interleaving MountEx and other operations. BUG=chromium:806788 TEST=existing tests Change-Id: I311720b38c0e75a0c44a33abf49450db618ca1ac Reviewed-on: https://chromium-review.googlesource.com/1019406 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> [modify] https://crrev.com/782a793f4dcc20643502078d4d07823972332e33/cryptohome/service.h [modify] https://crrev.com/782a793f4dcc20643502078d4d07823972332e33/cryptohome/service.cc [modify] https://crrev.com/782a793f4dcc20643502078d4d07823972332e33/cryptohome/service_unittest.cc
,
Apr 25 2018
,
Apr 26 2018
,
Apr 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd commit ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd Author: Maksim Ivanov <emaxx@google.com> Date: Thu Apr 26 20:01:33 2018 cryptohome: Use uint32_t for PCR indexes As a follow-up to discussion at [1], changing the existing code to use the unsigned fixed-size type instead of int for PCR indexes. [1] https://chromium-review.googlesource.com/c/chromiumos/platform2/+/999518/2/cryptohome/signature_sealing_backend_tpm2_impl.cc#53 BUG=chromium:806788 TEST=existing tests Change-Id: I96b6a06114439431b460199ae87ec318b158adb5 Reviewed-on: https://chromium-review.googlesource.com/1007279 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm_live_test.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm2_impl.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/attestation.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/attestation.h [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm_impl.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm2_impl.h [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm_impl.h [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/stub_tpm.h [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/bootlockbox/boot_lockbox.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/mock_tpm.h [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm2_test.cc [modify] https://crrev.com/ce1d3b3b6e6076d4d8f0c7bed1e93e435b2d40cd/cryptohome/tpm.h
,
Apr 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7975060ee525ec37b237344bc64393f5226199c9 commit 7975060ee525ec37b237344bc64393f5226199c9 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Apr 26 20:01:49 2018 attestation: Use uint32_t for PCR indexes As a follow-up to discussion at [1], changing the existing code to use the unsigned fixed-size type instead of int for PCR indexes. [1] https://chromium-review.googlesource.com/c/chromiumos/platform2/+/999518/2/cryptohome/signature_sealing_backend_tpm2_impl.cc#53 BUG=chromium:806788 TEST=existing tests Change-Id: Icb54928ff1f585e7d2d8b26407607bd792766717 Reviewed-on: https://chromium-review.googlesource.com/1007665 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/tpm_utility_v1.cc [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/tpm_utility_v1.h [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/tpm_utility.h [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/tpm_utility_v2.h [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/tpm_utility_v2.cc [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/server/attestation_service.cc [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/common/mock_tpm_utility.h [modify] https://crrev.com/7975060ee525ec37b237344bc64393f5226199c9/attestation/server/attestation_service.h
,
Apr 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/5cbf5b43cdf8e3fbe18f90c26be11ef7376a58a5 commit 5cbf5b43cdf8e3fbe18f90c26be11ef7376a58a5 Author: Maksim Ivanov <emaxx@google.com> Date: Thu Apr 26 20:01:47 2018 cryptohome: Vault keyset for challenge-response protection Extend the SerializedVaultKeyset protobuf message for holding required information when signature challenge protection is used. No change of behavior in this CL - the code for creating and loading such vault keysets will be added later. BUG=chromium:806788 TEST=none (existing tests) Change-Id: Ifb37ea389dfe4a37bad20dbd20ecdaa493c83f90 Reviewed-on: https://chromium-review.googlesource.com/1027090 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/5cbf5b43cdf8e3fbe18f90c26be11ef7376a58a5/cryptohome/vault_keyset.proto
,
Apr 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/d08b0b6313366ed455d9785a7b8ed9b30be81762 commit d08b0b6313366ed455d9785a7b8ed9b30be81762 Author: Maksim Ivanov <emaxx@google.com> Date: Fri Apr 27 19:22:42 2018 cryptohome: Signature-protected sealing with TPM 1.2 Implement signature-protected sealing mechanism for TPM 1.2, which is based on the Certified Migratable Key (CMK) feature. This implementation lacks the optimization of pre-generating the migration destination RSA key in background before the unsealing operation. This will be addressed in a future CL. BUG=chromium:806788 TEST=TPM live tests Change-Id: I36bdab4430a558fe81a2ce2357738d6a8a9d81df Reviewed-on: https://chromium-review.googlesource.com/958162 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Mattias Nissler <mnissler@chromium.org> [modify] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/cryptohome-libs.gypi [modify] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/tpm_impl.cc [add] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/signature_sealing_backend_tpm1_impl.cc [modify] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/tpm_impl.h [add] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/signature_sealing_backend_tpm1_impl.h [modify] https://crrev.com/d08b0b6313366ed455d9785a7b8ed9b30be81762/cryptohome/signature_sealed_data.proto
,
Apr 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/system_api/+/d45ce7d902326cfba54645205c29d30ab8aabdb6 commit d45ce7d902326cfba54645205c29d30ab8aabdb6 Author: Maksim Ivanov <emaxx@google.com> Date: Sat Apr 28 04:27:34 2018 cryptohome: Delete obsolete challenge-response APIs * Delete the KeyChallenge signal and the RespondKeyChallenge method. After new discussions, this has been decided to be replaced with a different approach. * As a consequence, delete proto fields that contained the request identifiers - these should be unnecessary with the new APIs. BUG=chromium:806788 TEST=none Change-Id: I0ffabd8f7354a96f0856b6d13d0c902d449e05a7 Reviewed-on: https://chromium-review.googlesource.com/1030378 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Dan Erat <derat@chromium.org> [modify] https://crrev.com/d45ce7d902326cfba54645205c29d30ab8aabdb6/dbus/cryptohome/rpc.proto [modify] https://crrev.com/d45ce7d902326cfba54645205c29d30ab8aabdb6/dbus/cryptohome/dbus-constants.h
,
May 2 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f50ec003a14c985cc60e61b3e7acfab44811c8c5 commit f50ec003a14c985cc60e61b3e7acfab44811c8c5 Author: Ryo Hashimoto <hashimoto@chromium.org> Date: Wed May 02 11:31:07 2018 Roll src/third_party/cros_system_api/ 43880122c..d45ce7d90 (2 commits) https://chromium.googlesource.com/chromiumos/platform/system_api.git/+log/43880122c4f3..d45ce7d90232 $ git log 43880122c..d45ce7d90 --date=short --no-merges --format='%ad %ae %s' 2018-04-26 emaxx cryptohome: Delete obsolete challenge-response APIs 2018-04-19 hashimoto Add constants for ArcAppFuseProvider Created with: roll-dep src/third_party/cros_system_api BUG= 837161 BUG=806788 Change-Id: I31ebc9bd3b5338fcd69a61848054ab50ec0d63b7 Reviewed-on: https://chromium-review.googlesource.com/1039306 Reviewed-by: Hidehiko Abe <hidehiko@chromium.org> Commit-Queue: Ryo Hashimoto <hashimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#555351} [modify] https://crrev.com/f50ec003a14c985cc60e61b3e7acfab44811c8c5/DEPS
,
May 3 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7db63eca53beb0816542468d050b6cf520b7b1eb commit 7db63eca53beb0816542468d050b6cf520b7b1eb Author: Maksim Ivanov <emaxx@google.com> Date: Thu May 03 05:20:55 2018 cryptohome: Delete obsolete challenge-response APIs Delete the KeyChallenge signal and the RespondKeyChallenge method. After new discussions, this has been decided to be replaced with a different approach. BUG=chromium:806788 TEST=none Change-Id: I22f19a055448ac2b65745f36a5b808e4c407f4eb Reviewed-on: https://chromium-review.googlesource.com/1030377 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> [modify] https://crrev.com/7db63eca53beb0816542468d050b6cf520b7b1eb/cryptohome/service.h [modify] https://crrev.com/7db63eca53beb0816542468d050b6cf520b7b1eb/cryptohome/service.cc [modify] https://crrev.com/7db63eca53beb0816542468d050b6cf520b7b1eb/cryptohome/interface.cc [modify] https://crrev.com/7db63eca53beb0816542468d050b6cf520b7b1eb/cryptohome/dbus_bindings/org.chromium.CryptohomeInterface.xml [modify] https://crrev.com/7db63eca53beb0816542468d050b6cf520b7b1eb/cryptohome/interface.h
,
May 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/93f94c2bfbdc7626a76493a795212f139a67254a commit 93f94c2bfbdc7626a76493a795212f139a67254a Author: Maksim Ivanov <emaxx@google.com> Date: Sat May 12 06:22:27 2018 cryptohome: D-Bus API for challenge-response keys Add the D-Bus Interface XML file for the delegate operations. Currently, the interface contains a single method - ChallengeKey - which will be called by cryptohomed during authentication with challenge-response keys. The interface, in production usage, will be implemented by the browser process. Also add the GYP target for the auto generation of D-Bus GLib client headers. BUG=chromium:806788 TEST=none (behind successful compilation of cryptohome) Change-Id: I5a00bb2d13abe018a5fb30d2f3550ed77d242dfa Reviewed-on: https://chromium-review.googlesource.com/1039568 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Dan Erat <derat@chromium.org> [modify] https://crrev.com/93f94c2bfbdc7626a76493a795212f139a67254a/cryptohome/cryptohome-libs.gypi [add] https://crrev.com/93f94c2bfbdc7626a76493a795212f139a67254a/cryptohome/dbus_bindings/org.chromium.CryptohomeKeyDelegateInterface.xml
,
May 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform/system_api/+/e62110ce76ac311a325adccedae412c35ef26adc commit e62110ce76ac311a325adccedae412c35ef26adc Author: Maksim Ivanov <emaxx@google.com> Date: Sat May 12 14:20:01 2018 cryptohome: Pass D-Bus delegate for challenge keys 1. Pass D-Bus service name and object path as part of authorization request data. This allows cryptohome to make challenge requests to this key delegate service for challenge-response keys. 2. Add constants for the D-Bus interface of the key delegate. Note that this CL does *not* add passing of the delegate for other request protobufs, like mount or add key request, because it won't be used for the current implementation of challenge-response keys - it will be a requirement to always use such keys as the authorization keys. But this may be changed in the future - for example, in order to support combining the challenge-response key with another key. BUG=chromium:806788 TEST=none Change-Id: I5a7f7a88ae3781817d934600b4a0733ccd723150 Reviewed-on: https://chromium-review.googlesource.com/1046205 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> [modify] https://crrev.com/e62110ce76ac311a325adccedae412c35ef26adc/dbus/cryptohome/rpc.proto [modify] https://crrev.com/e62110ce76ac311a325adccedae412c35ef26adc/dbus/cryptohome/dbus-constants.h
,
May 14 2018
,
May 25 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/826ecf6ff61c1baf825645ee631187f80321e7e0 commit 826ecf6ff61c1baf825645ee631187f80321e7e0 Author: Maksim Ivanov <emaxx@google.com> Date: Fri May 25 06:14:14 2018 cryptohome: Bind TPM 1.2 delegate to PCR0 Make the TPM 1.2 delegate be bound to PCR0. This will act as an additional measure of protection against switches between verified and dev modes, as this results in the change of PCR number 0. The exact effect is that if the current PCR0 value is different from the one when the delegate was created, such operations like the attestation or the migration of a CMK (Certified Migratable Key) will stop working. BUG=chromium:806788 TEST=existing tests Change-Id: Id347b911d102e6bf2795441e326e8ee2a427e114 Reviewed-on: https://chromium-review.googlesource.com/1065826 Commit-Ready: Maksim Ivanov <emaxx@chromium.org> Tested-by: Maksim Ivanov <emaxx@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> [modify] https://crrev.com/826ecf6ff61c1baf825645ee631187f80321e7e0/cryptohome/attestation.cc
,
Jul 7
,
Jul 7
,
Oct 12
|
||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by bugdroid1@chromium.org
, Jan 31 2018