Class: Google::Apis::ProximitybeaconV1beta1::EphemeralIdRegistration
- Inherits:
-
Object
- Object
- Google::Apis::ProximitybeaconV1beta1::EphemeralIdRegistration
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- generated/google/apis/proximitybeacon_v1beta1/classes.rb,
generated/google/apis/proximitybeacon_v1beta1/representations.rb,
generated/google/apis/proximitybeacon_v1beta1/representations.rb
Overview
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.
Instance Attribute Summary collapse
-
#beacon_ecdh_public_key ⇒ String
The beacon's public key used for the Elliptic curve Diffie-Hellman key exchange.
-
#beacon_identity_key ⇒ String
The private key of the beacon.
-
#initial_clock_value ⇒ Fixnum
The initial clock value of the beacon.
-
#initial_eid ⇒ 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 usingservice_ecdh_public_key
andservice_ecdh_public_key
. -
#rotation_period_exponent ⇒ Fixnum
Indicates the nominal period between each rotation of the beacon's ephemeral ID.
-
#service_ecdh_public_key ⇒ String
The service's public key used for the Elliptic curve Diffie-Hellman key exchange.
Instance Method Summary collapse
-
#initialize(**args) ⇒ EphemeralIdRegistration
constructor
A new instance of EphemeralIdRegistration.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::JsonObjectSupport
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ EphemeralIdRegistration
Returns a new instance of EphemeralIdRegistration
523 524 525 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 523 def initialize(**args) update!(**args) end |
Instance Attribute Details
#beacon_ecdh_public_key ⇒ 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.
Corresponds to the JSON property beaconEcdhPublicKey
NOTE: Values are automatically base64 encoded/decoded in the client library.
475 476 477 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 475 def beacon_ecdh_public_key @beacon_ecdh_public_key end |
#beacon_identity_key ⇒ 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.
Corresponds to the JSON property beaconIdentityKey
NOTE: Values are automatically base64 encoded/decoded in the client library.
483 484 485 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 483 def beacon_identity_key @beacon_identity_key end |
#initial_clock_value ⇒ Fixnum
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.
Corresponds to the JSON property initialClockValue
492 493 494 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 492 def initial_clock_value @initial_clock_value end |
#initial_eid ⇒ 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.
Corresponds to the JSON property initialEid
NOTE: Values are automatically base64 encoded/decoded in the client library.
502 503 504 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 502 def initial_eid @initial_eid end |
#rotation_period_exponent ⇒ Fixnum
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 2^K seconds.
Corresponds to the JSON property rotationPeriodExponent
513 514 515 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 513 def rotation_period_exponent @rotation_period_exponent end |
#service_ecdh_public_key ⇒ 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.
Corresponds to the JSON property serviceEcdhPublicKey
NOTE: Values are automatically base64 encoded/decoded in the client library.
521 522 523 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 521 def service_ecdh_public_key @service_ecdh_public_key end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
528 529 530 531 532 533 534 535 |
# File 'generated/google/apis/proximitybeacon_v1beta1/classes.rb', line 528 def update!(**args) @beacon_ecdh_public_key = args[:beacon_ecdh_public_key] if args.key?(:beacon_ecdh_public_key) @beacon_identity_key = args[:beacon_identity_key] if args.key?(:beacon_identity_key) @initial_clock_value = args[:initial_clock_value] if args.key?(:initial_clock_value) @initial_eid = args[:initial_eid] if args.key?(:initial_eid) @rotation_period_exponent = args[:rotation_period_exponent] if args.key?(:rotation_period_exponent) @service_ecdh_public_key = args[:service_ecdh_public_key] if args.key?(:service_ecdh_public_key) end |