Angaza Nexus backend libraries for managing PAYG devices
Project description
Nexus Python
This repository contains server-side code for managing devices using Nexus protocols, including Nexus Keycode.
Learn more about about Angaza Nexus here!
Installation
Nexus Keycode will be available on PyPI. Installation will be as simple as:
pip install nexus-keycode
This package comes with a full suite of unit tests, which you can run like so:
nose2
Versioning
Package Version
This package uses a form of semantic versioning. The version number is comprised of three components: MAJOR.MINOR.PATCH
Major version numbers represent breaking internal API changes. You may need to modify your code to accomodate these changes. Minor version numbers represent feature additions or changes that do not break the library's API, and are fully backward compatible. Patch version numbers represent bug fixes or minor changes that do not add additional functionality.
The package version is independent of the Nexus System Version that the package supports.
Usage
Generate keycodes for the full and small keypad protocols.
Full Protocol
Add Credit
secret_key = b"\xde\xad\xbe\xef" * 4
message = FullMessage.add_credit(
id_=42, hours=24 * 7, secret_key=secret_key
).to_keycode()
# outputs *599 791 493 194 43#
Set Credit
message = FullMessage.set_credit(
id_=43, hours=24 * 10, secret_key=secret_key
).to_keycode()
# outputs *682 070 357 093 12#
Unlock
message = FullMessage.unlock(id_=44, secret_key=secret_key).to_keycode()
# outputs *578 396 697 305 45#
Wipe
message = FullMessage.wipe_state(
id_=45, flags=FullMessageWipeFlags.WIPE_IDS_ALL, secret_key=secret_key
).to_keycode()
# outputs *356 107 776 307 38#
Enabled/Disabled Test
message = FactoryFullMessage.oqc_test().to_keycode()
# outputs *577 043 3#
Factory Test
message = FactoryFullMessage.allow_test().to_keycode()
# outputs *406 498 3#
Display PAYG ID
message = FactoryFullMessage.display_payg_id().to_keycode()
# outputs *634 776 5#
Small Protocol
Add Credit
SECRET_KEY = b"\xde\xad\xbe\xef" * 4
AddCreditSmallMessage(id_=42, days=7, secret_key=secret_key).to_keycode()
# outputs 135 242 422 455 244
Update Credit
UpdateCreditSmallMessage(id_=43, days=14, secret_key=secret_key).to_keycode()
# outputs 145 222 453 233 453
Set Credit
SetCreditSmallMessage(id_=44, days=10, secret_key=secret_key).to_keycode()
# outputs 142 522 332 234 533
Unlock
UnlockSmallMessage(id_=45, secret_key=secret_key).to_keycode()
# outputs 152 323 254 454 322
Wipe
MaintenanceSmallMessage(type_=MaintenanceSmallMessageType.WIPE_IDS_ALL, secret_key=secret_key).to_keycode()
# outputs 122 324 235 545 545
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nexus_keycode-1.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e21a642b05421e81bf5c2d5fb286690002c0d655e94293de77eb858006a44fae |
|
MD5 | 4fa59ddbbdecab007f10ed15a40c0758 |
|
BLAKE2b-256 | 9f7c712c41c410341b0126afb85f46c672f5427b45f3dd34f5c494795d37688f |