Skip to main content

optigatrust

A ctypes based Python wrapper to work with the OPTIGA(TM) Trust security solutions.

PyPI

Features

Function Module
Elliptic Curves Cryptograpy optigatrust.pk.ecc
ECDSA optigatrust.pk.ecdsa
Certificate Signing Request optigatrust.x509.csr
Certificate handling optigatrust.x509.cert
Random Number Generation optigatrust.rand
Write/Read General Purpose Data optigatrust.util.io

Dependencies

Required Hardware

  • OPTIGA(TM) Trust Personalisation Board, or
  • any FTDI USB-HID/I2C Converter board
  • (planned) Embedded Linux with open I2C lines; e.g. RPi3

Installation

$ pip install optigatrust

License

optigatrust is licensed under the terms of the MIT license. See the LICENSE file for the exact license text.

Documentation

The documentation for optigatrust is composed of tutorials on basic usage and links to the source for the various pre-defined type classes.

Examples

from optigatrust.rand import *
from optigatrust.pk import *
from optigatrust.x509 import *
import base64

print("Rand size 8 bytes: {0}\n".format(list(get_random_bytes(8))))
print("Rand size 16 bytes: {0}\n".format(list(get_random_bytes(16))))
print("Rand size 255 bytes: {0}\n".format(list(get_random_bytes(255))))

ecc_key = ecc.generate_keypair()
print("Generate NIST-P256 Keypair: {0}\n".format(list(ecc_key.pkey)))

ecdsa_signature = ecdsa.sign(ecc_key, b'Hello World')
print("Generate ECDSA Signature using the keypair: {0}\n".format(list(ecdsa_signature.signature)))

csr_key = ecc.generate_keypair(curve='secp256r1', keyid=KeyId.USER_PRIVKEY_3)
print("Generate NIST-P256 Keypair for a new certificate: {0}\n".format(list(csr_key.pkey)))

builder = csr.Builder(
	{
		'country_name': 'DE',
		'state_or_province_name': 'Bayern',
		'organization_name': 'Infineon Technologies AG',
		'common_name': 'OPTIGA(TM) Trust IoT',
	},
	key_1
)

request = builder.build(csr_key)
csr = base64.b64encode(request.dump())
print("A new CSR {0}\n".format(csr))

Testing

Tests are written using pytest and require this package to be installed:

$ git clone --recurse-submodules https://github.com/Infineon/python-optiga-trust
...
$ cd python-optiga-trust
$ cd tests
$ pytest

To run only some tests, pass a regular expression as a parameter to tests.

$ pytest test_rand.py

Development

Existing releases can be found at https://pypi.org/project/optigatrust/.

Metadata

Release files for optigatrust 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for optigatrust 0.3.7
File Size Uploaded
optigatrust-0.3.7.tar.gz 15.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for optigatrust 0.3.7
File Interpreter ABI Platform
optigatrust-0.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 259.8 kB

Release files / optigatrust-0.3.7.tar.gz

Download URL optigatrust-0.3.7.tar.gz
Size 15.6 kB
Tags Source
SHA-256 checksum
How to use checksums
09cdbad7e2a4741eaf77071b535672b47c4ef47136613abaed10bb98f08f25ea
BLAKE2b-256 checksum
How to use checksums
e47f1709f04c22e8d098e744cfe9298b6f924fcae2c8f11d92199f80e3a5712d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

Release files / optigatrust-0.3.7-py3-none-any.whl

Download URL optigatrust-0.3.7-py3-none-any.whl
Size 244.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
106e66e8a3da6258afd3191f771e065a03b35eee52a7238ea4230a2b54076794
BLAKE2b-256 checksum
How to use checksums
6d3375c06b711e931bb340d8e593e293b7507ea3fade6cf76390eefd26680644
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

Release history Release notifications | RSS feed

1.5.1

2 release files

1.5.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.0.7

2 release files

1.0.6

1 release file

1.0.5

1 release file

1.0.4

2 release files

1.0.3

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.4.7

2 release files

0.4.6

1 release file

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.3.8

2 release files

This release

0.3.7 This release

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page