Skip to content

Production ready implementation and documentation for XMSS.

Notifications You must be signed in to change notification settings

FoxCryptoNL/xmss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

XMSS

eXtended Merkle Signature Scheme is a post-quantum safe signature algorithm (RFC).

XMSS C Library License XMSS C Library Release

XMSS C Library

This project contains a pure C99 implementation of the XMSS algorithm, developed by Fox Crypto.

The XMSS C library is production ready and is being maintained on premise to support evaluation at the highest possible levels (e.g. Common Criteria). Please contact Fox Crypto for details on how we can help getting your product certified.

The library was developed under the Dutch "National Crypto Strategy" (NCS), aiming to speed up the development of first class information security products, stimulating R&D in the crypto field, and strengthening collaboration between government, companies and academia.

Features

The library supports the 256-bits parameter sets recommended by NIST SP 800-208:

  • XMSS-SHA2_10_256
  • XMSS-SHA2_16_256
  • XMSS-SHA2_20_256
  • XMSS-SHAKE256_10_256
  • XMSS-SHAKE256_16_256
  • XMSS-SHAKE256_20_256

Multi-tree XMSS (XMSS-MT) is not supported.

The library consists of two parts with slightly different, but complementary objectives.

Signing

The signing part of the library delivers an API which includes not only the common signature operations, but also provides solutions for availability, load balancing, and signature count hiding. It is optimized for use on modern PC or server hardware.

Verification

The verification library consists of a single C function which allows the caller to verify a signature against a payload and a public key. It is optimized for resource-constrained hardware, including micro-controllers.

Repositories

The XMSS C library is split over several repositories. This allows users to monitor the source code repository for changes without having to deal with the more frequent updates to the documentation.