Cryptick is a stock ticker for cryptocurrency tokens, and a physical NFT.

Overview

Cryptick USB Client - Python

This repo provides scripts for communicating with a Cryptick physical NFT device using Python. Each Cryptick device is a WiFi connected stock ticker for crypto tokens, and is also connected to an NFT on the Ethereum blockchain.

If you're here to authenticate your Cryptick device, skip down to the Digital Signature Authentication (DSA) section.

Requirements

  1. Python >=3
  2. pycrypto lib (for DSA and SHA256 functions)

Available Commands

gettime

Get the internal clock time from cryptick device

python cryptick.py --gettime

settime

Set the cryptick internal clock from the current system time, also setting the UTC offset from the system.

python cryptick.py --settime

24 hour display mode is default. Optionally, specify 12 hour display mode:

python cryptick.py --settime --h12

setmode

Set the cryptick mode. Possible modes are coin, clock, and usbdata. coin displays the cryptocurrency market ticker. clock displays the current time. usbdata mode will listen for any setassetsdata command, allowing for display of arbitrary market data.

python cryptick.py --setmode clock

setbrightness

Set the cryptick display brightness. Value range [1,5]

python cryptick.py --setbrightness 4

getpubkey

Get the public key from cryptick device and write to a pem file. This can be used as a sanity check; to verify that the public key matches the one stored in the NFT on the Ethereum blockchain. Specify the pem output filename as an argument.

python cryptick.py --getpubkey cryptick.pem

resetwifi

Reset the wifi settings of the cryptick device. This removes any stored wifi access point credentials from the device.

python cryptick.py --resetwifi

setwifi

Set the wifi settings of the cryptick device. The device will store the wifi credentials and attempt to connect on next boot.

python cryptick.py --setwifi ssid password

getcurrencylist

Get the device's valid vs currency list.

python cryptick.py --getcurrencylist

getcoinlist

Get the device's valid coin list (list of all valid coins cached from last connection to web service).

python cryptick.py --getcoinlist

setcurrency

Set the device's vs currency.

python cryptick.py --setcurrency usd

setcoins

Set the device's subscribed coins from the list of arguments (up to 10 coins).

python cryptick.py --setcoins btc eth ada dot xlm xrp

setassetsdata

If device mode is set to usbdata, then you can send an asset data json string to display in the ticker. This allows you to send any arbitrary market data to be displayed. The json string is loaded from the specified file in the arguments. Please see the usbdata mode doc for example json file usb_setassetsdata.json

python cryptick.py --setassetsdata usb_setassetsdata.json

getconfig

gets the device's config as a json string and prints it to stdout.

python cryptick.py --getconfig

authenticate

Execute digital signature authentication challenge (DSA) to verify the authenticity of the physical Cryptick device. This process is described in the Digital Signature Authentication (DSA) section.

Cryptick Digital Signature Authentication

Each Cryptick device has an embedded crypto chip which stores a unique private key for ECC DSA. This private key is securely stored and cannot be read out from the device.

Each Cryptick device is associated with a Cryptick NFT on the Ethereum blockchain. The public key is stored in the Cryptick NFT metadata. At any time in the future, anyone can view the Cryptick NFT on the blockchain and see that it is associated with the owner of the Cryptick NFT.

To authenticate the physical Cryptick device, use the following process:

  1. Clone this repository and install the prerequisite library pycrypto:
git clone https://github.com/cryptick-io/cryptick.git
pip install pycrypto
  1. Plug in the Cryptick device to your computer using a USB-C cable.

  2. Locate the serial number of your Cryptick on the back lid, engraved in the wood. In this example, let's assume it is Cryptick Founders Edition (FE) #49.

  3. Next, we can run the script's authenticate command. In this example we will authenticate cryptick founders edition #49:

python cryptick.py --authenticate --serial cryptick-fe/49

  1. The script will grab the cryptick device's public key from cryptick.io based on the provided serial string (full link generated here). It then performs a DSA challenge and verifies the results using the NIST FIPS 186-4 ECDSA algorithm. If the device is authenticated successfully, it will print to the terminal:

Challenge verification success.

  1. To be even safer, you can remove all 3rd parties from the authentication chain, and specify the public key on the command line. To do this, you'll need to view the NFT's data on the Ethereum blockchain. The easiest way to do this is to view the NFT metadata in your Metamask wallet, Etherscan, or on OpenSea.io. In the Cryptick NFT's metadata, the public key is included at the end of the description. Copy the contents of this string into a pubkey.pem file in the same folder as the cryptick.py script and run

python cryptick.py --authenticate --pubkeypem ./pubkey.pem

If the device is authenticated successfully, it will print to the terminal:

Challenge verification success.

Python decompiler for Python 1.5-2.4 (for historical archive)

This preserves the early code of a Python decompiler for Python versions 1.5 to 2.4. I have been able to install this using pyenv using Python 2.3.7 u

R. Bernstein 2 Jan 04, 2022
An forensics tool to help aid in the investigation of spoofed emails based off the email headers.

A forensic tool to make analysis of email headers easy to aid in the quick discovery of the attacker. Table of Contents About mailMeta Installation Us

Syed Modassir Ali 59 Nov 26, 2022
script that pulls cve collections from NVD.NIST.GOV.

# cvepull.py #script that pulls cve collections from NVD.NIST.GOV. #edit line 17 (timedelta) number to change the amount of days to search backwards

Aaron W 1 Dec 18, 2021
A curated list of amazingly awesome Cybersecurity datasets

A curated list of amazingly awesome Cybersecurity datasets

758 Dec 28, 2022
Red Team Toolkit is an Open-Source Django Offensive Web-App which is keeping the useful offensive tools used in the red-teaming together.

RedTeam Toolkit Note: Only legal activities should be conducted with this project. Red Team Toolkit is an Open-Source Django Offensive Web-App contain

Mohammadreza Sarayloo 382 Jan 01, 2023
Volunteer & Campaign Management System

Cleansweep Requirements A Linux (or Mac OS X) node with the following software installed. Ubuntu 14.04 is preferred. PostgreSQL 9.3 database server Py

Aam Aadmi Party 39 May 24, 2022
A simple way to store your passwords without requiring third party applications

SimplePasswordManager A simple way to store your passwords without requiring third party applications Simple To Use. Store Your Passwords For Each Web

Leone Odinga 1 Dec 23, 2021
MS-FSRVP coercion abuse PoC

ShadowCoerce MS-FSRVP coercion abuse PoC Credits: Gilles LIONEL (a.k.a. Topotam)

Shutdown 219 Dec 28, 2022
A GitHub action for organizations that enables advanced security code scanning on all new repos

Advanced-Security-Enforcer What this repository does This code is for an active GitHub Action written in Python to check (on a schedule) for new repos

Zack Koppert 30 May 17, 2022
A small Python Script To get all levels of subdomains from a list

getlevels A small Python Script To get all levels of subdomains Easily get 1st level, 2nd level, 3rd level, 4th level .... nth level subdomains Usag

9 Feb 15, 2022
A simple password generator using Python Tkinter.

Password-Generator-using-Python A simple password generator that generates password for you. User can Copy the password to Clipboard. Project made usi

Prashant Agheda 1 Nov 02, 2022
Fuzzercorn - Bring libfuzzer to Unicorn

Fuzzercorn libfuzzer bindings for Unicorn. API // The main entry point of the fu

lazymio 23 Nov 17, 2022
a cool, easily usable and customisable subdomains scanner

Subdah 🔎 another subdomains scanner. Installation ⚠️ Python 3.10 required ⚠️ $ git clone https://github.com/traumatism/subdah $ cd subdah $ pip3 inst

toast 14 Oct 18, 2022
Generate MIPS reverse shell shellcodes easily !

MIPS-Reverse MIPS-Reverse is a tool that can generate shellcodes for the MIPS architecture that launches a reverse shell where you can specify the IP

29 Jul 27, 2021
Raphael is a vulnerability scanning tool based on Python3.

Raphael Raphael是一款基于Python3开发的插件式漏洞扫描工具。 Raphael is a vulnerability scanning too

b4zinga 5 Mar 21, 2022
Gitlab RCE - Remote Code Execution

Gitlab RCE - Remote Code Execution RCE for old gitlab version = 11.4.7 & 12.4.0-12.8.1 LFI for old gitlab versions 10.4 - 12.8.1 This is an exploit f

153 Nov 09, 2022
Searches filesystem for CVE-2021-44228 and CVE-2021-45046 vulnerable instances of log4j library, including embedded (jar/war/zip) packaged ones.

log4shell_finder Python port of https://github.com/mergebase/log4j-detector log4j-detector is copyright (c) 2021 - MergeBase Software Inc. https://mer

Hynek Petrak 33 Jan 04, 2023
This tool was created in order to automate some basic OSINT tasks for penetration testing assingments.

This tool was created in order to automate some basic OSINT tasks for penetration testing assingments. The main feature that I haven't seen much anywhere is the downloadd google dork function where t

Tobias 5 May 31, 2022
A Python application to predict what is cooking

ez-cuisine-classifier A Python application to predict what is cooking Environment Python 3.9 Windows 10 Install python -m venv venv .\venv\Scripts\act

Zeheng Li 1 Jun 21, 2022
Python lib to automate basic QFT calculations like Wick-contractions.

QFTools Python lib to automate basic QFT calculations like Wick-contractions. Features Wick contractions for real scalar fields Wick contractions for

2 Aug 21, 2022