mwarning / mbedtls_ecp_compression

Elliptic Curve Point compression/decompression for mbedtls

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Elliptic Curve Point compression/decompression for mbedTLS

This is all about two helper methods called mbedtls_ecp_decompress() and mbedtls_ecp_compress(). They perform X25519 / Curve25519 point compression and decompression. This halves the length of the public key. mbedTLS will likely never support point decompression, as it is not mandated in the TLS specification.

EC crypto keys for TLS consist of concatenated x and y coordinates (hence a point), which makes them rather long to print out. But since the function is known, only x really needs to be transmitted. This can help to keep QR-Codes smaller, as less data needs to be transmitted.

For support of mbedTLS version < 3.0.0, check out an older commit.

Supported Curves

Only curves 3 mod 4 are supported:

  • secp521r1
  • brainpoolP512r1
  • secp384r1
  • brainpoolP384r1
  • secp256r1
  • secp256k1
  • brainpoolP256r1
  • secp192r1
  • secp192k1

See this post.

Resources:

About

Elliptic Curve Point compression/decompression for mbedtls

License:Creative Commons Zero v1.0 Universal


Languages

Language:C 98.2%Language:Makefile 1.8%