New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 899080 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Switch to CryptAuth V2 Enrollment

Project Member Reported by jlklein@chromium.org, Oct 25

Issue description

This migration is necessary in order to enable other CryptAuth V2 migrations (device sync, using our own keys, etc). It will also mean that we can stop looking at the V1 enrollment path altogether, making maintenance much easier.

Josh is taking this on and will be writing a design doc as a first step.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f82dccfc8ac00567309fae7f6676912d43b01ea

commit 2f82dccfc8ac00567309fae7f6676912d43b01ea
Author: Josh Nohle <nohle@google.com>
Date: Mon Dec 17 23:11:23 2018

Add feature flag for CryptAuth v2 Enrollment

The flag added here will be used to eventually enable use of the
CryptAuth v2 Enrollment protocol (https://go/cryptauth2-enrollment). The
Chrome OS migration plan from CryptAuth v1 to v2 Enrollment is outlined
in the design document https://go/cryptauthv2-enrollment-migration-cros.

Bug: 899080
Change-Id: Ie84b33acb2fbf262ad2193a438a4bb61c633c49b
Reviewed-on: https://chromium-review.googlesource.com/c/1380339
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Josh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617276}
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chrome/browser/about_flags.cc
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chrome/browser/flag-metadata.json
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chromeos/chromeos_features.cc
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/chromeos/chromeos_features.h
[modify] https://crrev.com/2f82dccfc8ac00567309fae7f6676912d43b01ea/tools/metrics/histograms/enums.xml

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 4

Status: Assigned (was: Unconfirmed)
This issue has an owner, a component and a priority, but is still listed as untriaged or unconfirmed. By definition, this bug is triaged. Changing status to "assigned". Please reach out to me if you disagree with how I've done this.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 16 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e8e26d318957dac1e502f482e377c0218a5867a

commit 6e8e26d318957dac1e502f482e377c0218a5867a
Author: Josh Nohle <nohle@google.com>
Date: Wed Jan 16 19:16:35 2019

Add CryptAuthKey class

Adds a class to hold material for keys managed by CryptAuth v2
Enrollment. The class can also be used to hold material for ephemeral
keys, such as Diffie-Hellman key-pairs.

Bug: 899080
Change-Id: I66ad858db5382cb0ec9ff3f39fdf5881321122da
Reviewed-on: https://chromium-review.googlesource.com/c/1399471
Commit-Queue: Josh Nohle <nohle@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623323}
[modify] https://crrev.com/6e8e26d318957dac1e502f482e377c0218a5867a/chromeos/services/device_sync/BUILD.gn
[add] https://crrev.com/6e8e26d318957dac1e502f482e377c0218a5867a/chromeos/services/device_sync/cryptauth_key.cc
[add] https://crrev.com/6e8e26d318957dac1e502f482e377c0218a5867a/chromeos/services/device_sync/cryptauth_key.h
[add] https://crrev.com/6e8e26d318957dac1e502f482e377c0218a5867a/chromeos/services/device_sync/cryptauth_key_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 16 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a5253dab172a8d5e576dc48dc25e456eaa0b031

commit 9a5253dab172a8d5e576dc48dc25e456eaa0b031
Author: Josh Nohle <nohle@google.com>
Date: Wed Jan 16 20:53:36 2019

Add CryptAuthKeyBundle class

Adds a class to hold a group of related CryptAuthKeys, uniquely
identified by their handles.

All keys will be active or inactive, and no more than one key can be
active at a time. Only the active key should be used for encryption,
signing, etc. The inactive keys are retained in case CryptAuth decides
to activate them in a future via a SyncSingleKeyResponse::KeyAction.

All key bundles used in Chrome OS are enumerated in the
CryptAuthKeyBundle::Name enum class. The corresponding name string that
will be sent to CryptAuth in the SyncSingleKeysRequest::key_name
protobuf field can be retrieved via KeyBundleNameEnumToString().
Currently, the only key bundle being used corresponds to the CryptAuth
name "PublicKey".

Bug: 899080
Change-Id: Ia6d608a94559cb886e97c6859dc98d38225fdf16
Reviewed-on: https://chromium-review.googlesource.com/c/1405726
Commit-Queue: Josh Nohle <nohle@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623345}
[modify] https://crrev.com/9a5253dab172a8d5e576dc48dc25e456eaa0b031/chromeos/services/device_sync/BUILD.gn
[add] https://crrev.com/9a5253dab172a8d5e576dc48dc25e456eaa0b031/chromeos/services/device_sync/cryptauth_key_bundle.cc
[add] https://crrev.com/9a5253dab172a8d5e576dc48dc25e456eaa0b031/chromeos/services/device_sync/cryptauth_key_bundle.h
[add] https://crrev.com/9a5253dab172a8d5e576dc48dc25e456eaa0b031/chromeos/services/device_sync/cryptauth_key_bundle_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 16 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b65d6967cb3f3a8b91c1ea72a6927ade1ff0be44

commit b65d6967cb3f3a8b91c1ea72a6927ade1ff0be44
Author: Josh Nohle <nohle@google.com>
Date: Wed Jan 16 23:22:16 2019

Qualify CryptAuthKeyBundle::NameList() with class name

Fixes potential linker errors.

Bug: 899080
Change-Id: I1a50b6eb573924e126d84c141520140fca7697f3
Reviewed-on: https://chromium-review.googlesource.com/c/1415760
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Josh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623442}
[modify] https://crrev.com/b65d6967cb3f3a8b91c1ea72a6927ade1ff0be44/chromeos/services/device_sync/cryptauth_key_bundle.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 18 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a96136463f8a55944c7ed296820cf9e6b711c062

commit a96136463f8a55944c7ed296820cf9e6b711c062
Author: Josh Nohle <nohle@google.com>
Date: Fri Jan 18 02:07:18 2019

Add CryptAuthEnrollmentResult class

This class holds the status of a CryptAuth v2 Enrollment attempt and
potentially a new ClientDirective from the SyncKeysResponse.

The CryptAuthEnroller will construct this object and pass it to the
CryptAuthEnrollmentManager when the enrollment finishes, successfully or
not. The CryptAuthEnrollmentManager will forward this on the the
CryptAuthEnrollmentScheduler to process the ClientDirective and schedule
a retry attempt if necessary. The CryptAuthEnrollmentManager will use
the CryptAuthEnrollmentResult::ResultCode for metrics.

Bug: 899080
Change-Id: Id70526ef9e02c9029ee174b7612711ac0f31c06f
Reviewed-on: https://chromium-review.googlesource.com/c/1409805
Commit-Queue: Josh Nohle <nohle@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623957}
[modify] https://crrev.com/a96136463f8a55944c7ed296820cf9e6b711c062/chromeos/services/device_sync/BUILD.gn
[add] https://crrev.com/a96136463f8a55944c7ed296820cf9e6b711c062/chromeos/services/device_sync/cryptauth_enrollment_result.cc
[add] https://crrev.com/a96136463f8a55944c7ed296820cf9e6b711c062/chromeos/services/device_sync/cryptauth_enrollment_result.h

Project Member

Comment 8 by bugdroid1@chromium.org, Today (13 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3843be316caab65a9d144c80fb627205598f5eac

commit 3843be316caab65a9d144c80fb627205598f5eac
Author: Josh Nohle <nohle@google.com>
Date: Tue Jan 22 18:52:06 2019

CryptAuthKeyBundle: DCHECK DeleteKey; change NameList() to AllNames()

Fail if the handle passed to CryptAuthKeyBundle::DeleteKey() doesn't
exist in the bundle. Also, change NameList() to AllNames() since the
function does not return a list.

Bug: 899080
Change-Id: Ib962b658b16157fde8dff42e7e4f630b56e0907b
Reviewed-on: https://chromium-review.googlesource.com/c/1423666
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Josh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624848}
[modify] https://crrev.com/3843be316caab65a9d144c80fb627205598f5eac/chromeos/services/device_sync/cryptauth_key_bundle.cc
[modify] https://crrev.com/3843be316caab65a9d144c80fb627205598f5eac/chromeos/services/device_sync/cryptauth_key_bundle.h
[modify] https://crrev.com/3843be316caab65a9d144c80fb627205598f5eac/chromeos/services/device_sync/cryptauth_key_bundle_unittest.cc

Sign in to add a comment