0.0
No commit activity in last 3 years
No release in over 3 years
Tools to calculate Eddystone ephemeral identifiers
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.10
~> 10.0
>= 0

Runtime

 Project Readme

EphemeralCalc Build Status Gem Version

A Ruby gem that allows you to calculate ephemeral identifiers for Eddystone-EID beacons.

Example Usage

# insert real resolver key here
resolver_public_key = "61136adab1bf302f1c49e860196aeefd8fbaa41518b4c226372d6cc469c47278"
# generate a new key pair for the beacon
beacon_keys = EphemeralCalc::KeyPair.new
# calculate the identity key
identity_key = beacon_keys.identity_key(resolver_public_key: resolver_public_key)
# set up the encryptor
rotation_exponent = 10
encryptor = EphemeralCalc::Encryptor.new identity_key, rotation_exponent
# get the initial eid
initial_eid = encryptor.get_identifier(0)

# yield eid values as it rotates
encryptor.each_identifier do |eid|
  puts "Quantum: #{encryptor.quantum}, EID: #{eid}"
end

Command Line Usage

The ephemeral_calc executable is included to allow you to generate keypairs, and do general eid calculation without having to write any code.

# display CLI help
ephemeral_calc

# set up EphemeralCalc for Google OAuth
export GOOGLE_CLIENT_ID="xxxx"
export GOOGLE_CLIENT_SECRET="yyyy"

# get EID registration parameters from Google's API using OAuth
ephemeral_calc eidparams

# resolve an EID using a Google project's API key
API_KEY=xxxx ephemeral_calc resolve 0123456789ABCDEF

# resolve EID using OAuth
ephemeral_calc resolve 0123456789ABCDEF

# list first 5 EIDs given identity key, rotation scaler
ephemeral_calc list 553C66DA1485E9F78849DE00F2CB178E 12 0 5

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/radiusnetworks/ephemeral_calc. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.