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 |

Current Release

0.3.3

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.3

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.3
File Size Uploaded
optigatrust-0.3.3.tar.gz 15.8 kB Details

Built distribution (wheel)

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

Total release size: 260.0 kB

Release files / optigatrust-0.3.3.tar.gz

Download URL optigatrust-0.3.3.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4d463d0b2bb8078722de02f2ff504debbd719f2ff1cdf71921875d5a71983d56
BLAKE2b-256 checksum
How to use checksums
a449f52f1f232be29e0f474a60a628a9407689d23f9e24d912d397dc8c87a73f
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.3-py3-none-any.whl

Download URL optigatrust-0.3.3-py3-none-any.whl
Size 244.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e304c381cf81f6bbe13123a1b72c8b0eae587c0b8072549209f87fe2cd905f27
BLAKE2b-256 checksum
How to use checksums
1f4ed88fa080f579026307c72e142f925725a1eb6360348180ba7b01998bb3c8
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

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

This release

0.3.3 This release

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