Struct google_proximitybeacon1_beta1::EphemeralIdRegistration
[−]
[src]
pub struct EphemeralIdRegistration { pub initial_eid: Option<String>, pub rotation_period_exponent: Option<u32>, pub beacon_ecdh_public_key: Option<String>, pub initial_clock_value: Option<String>, pub service_ecdh_public_key: Option<String>, pub beacon_identity_key: Option<String>, }
Write-only registration parameters for beacons using Eddystone-EID format. Two ways of securely registering an Eddystone-EID beacon with the service are supported:
- Perform an ECDH key exchange via this API, including a previous call
to
GET /v1beta1/eidparams
. In this case the fieldsbeacon_ecdh_public_key
andservice_ecdh_public_key
should be populated andbeacon_identity_key
should not be populated. This method ensures that only the two parties in the ECDH key exchange can compute the identity key, which becomes a secret between them. - Derive or obtain the beacon's identity key via other secure means
(perhaps an ECDH key exchange between the beacon and a mobile device
or any other secure method), and then submit the resulting identity key
to the service. In this case
beacon_identity_key
field should be populated, and neither ofbeacon_ecdh_public_key
norservice_ecdh_public_key
fields should be. The security of this method depends on how securely the parties involved (in particular the bluetooth client) handle the identity key, and obviously on how securely the identity key was generated.
See the Eddystone specification at GitHub.
This type is not used in any activity, and only used as part of another schema.
Fields
initial_eid: Option<String>
An initial ephemeral ID calculated using the clock value submitted as
initial_clock_value
, and the secret key generated by the
Diffie-Hellman key exchange using service_ecdh_public_key
and
service_ecdh_public_key
. This initial EID value will be used by the
service to confirm that the key exchange process was successful.
rotation_period_exponent: Option<u32>
Indicates the nominal period between each rotation of the beacon's ephemeral ID. "Nominal" because the beacon should randomize the actual interval. See the spec at github for details. This value corresponds to a power-of-two scaler on the beacon's clock: when the scaler value is K, the beacon will begin broadcasting a new ephemeral ID on average every 2K seconds.
beacon_ecdh_public_key: Option<String>
The beacon's public key used for the Elliptic curve Diffie-Hellman
key exchange. When this field is populated, service_ecdh_public_key
must also be populated, and beacon_identity_key
must not be.
initial_clock_value: Option<String>
The initial clock value of the beacon. The beacon's clock must have begun counting at this value immediately prior to transmitting this value to the resolving service. Significant delay in transmitting this value to the service risks registration or resolution failures. If a value is not provided, the default is zero.
service_ecdh_public_key: Option<String>
The service's public key used for the Elliptic curve Diffie-Hellman
key exchange. When this field is populated, beacon_ecdh_public_key
must also be populated, and beacon_identity_key
must not be.
beacon_identity_key: Option<String>
The private key of the beacon. If this field is populated,
beacon_ecdh_public_key
and service_ecdh_public_key
must not be
populated.
Trait Implementations
impl Default for EphemeralIdRegistration
[src]
fn default() -> EphemeralIdRegistration
[src]
Returns the "default value" for a type. Read more
impl Clone for EphemeralIdRegistration
[src]
fn clone(&self) -> EphemeralIdRegistration
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more