import board import busio from adafruit_atecc.adafruit_atecc import ATECC, _WAKE_CLK_FREQ # Initialize the i2c bus i2c = busio.I2C(board.SCL, board.SDA, frequency=_WAKE_CLK_FREQ) # Initialize a new atecc object atecc = ATECC(i2c) print("ATECC Serial: ", atecc.serial_number) # Generate a random number with a maximum value of 1024 print("Random Value: ", atecc.random(rnd_max=1024)) # Print out the value from one of the ATECC's counters # You should see this counter increase on every time the code.py runs. print("ATECC Counter #1 Value: ", atecc.counter(1, increment_counter=True)) # Initialize the SHA256 calculation engine atecc.sha_start() # Append bytes to the SHA digest print("Appending to the digest...") atecc.sha_update(b"Nobody inspects") print("Appending to the digest...") atecc.sha_update(b" the spammish repetition") # Return the digest of the data passed to sha_update message = atecc.sha_digest() print("SHA Digest: ", message)
# Organization Name MY_ORG = "Adafruit" # Organizational Unit Name MY_SECTION = "Crypto" # Which ATECC slot (0-4) to use ATECC_SLOT = 0 # Generate new private key, or use existing key GENERATE_PRIVATE_KEY = True # -- END Configuration, code below -- # # Initialize the i2c bus i2c = busio.I2C(board.SCL, board.SDA, frequency=_WAKE_CLK_FREQ) # Initialize a new atecc object atecc = ATECC(i2c) print("ATECC Serial Number: ", atecc.serial_number) if not atecc.locked: if not LOCK_ATECC: raise RuntimeError( "The ATECC is not locked, set LOCK_ATECC to True in code.py." ) print("Writing default configuration to the device...") atecc.write_config(CFG_TLS) print("Wrote configuration, locking ATECC module...") # Lock ATECC config, data, and otp zones atecc.lock_all_zones() print("ATECC locked!")
MY_ORG = "Adafruit" # Organizational Unit Name MY_SECTION = "Crypto" # Which ATECC slot (0-4) to use ATECC_SLOT = 1 # Generate new private key, or use existing key GENERATE_PRIVATE_KEY = False # -- END Configuration, code below -- # # Initialize the i2c bus i2c = busio.I2C(board.SCL, board.SDA, frequency=_WAKE_CLK_FREQ) # Initialize an atecc object atecc = ATECC(i2c, debug=False) print("ATECC Serial Number: ", atecc.serial_number) if not atecc.locked: if not LOCK_ATECC: raise RuntimeError("The ATECC is not locked, set LOCK_ATECC to True in your code to unlock it.") print("Writing default configuration to the device...") atecc.write_config(adafruit_atecc.CFG_TLS) print("Wrote configuration, locking ATECC module...") # lock configuration zone atecc.lock(lock_config=True) # lock data and otp zones atecc.lock(lock_data_otp=True) print("ATECC locked!")