For more details, see the main documentation (above) and the example test files.
using CryptoSysPQC;
Imports CryptoSysPQC
diCrSysPQCNet.dll
(which you should find installed in C:\Program Files (x86)\CryptoSysPQC\DotNet
),
OR include the C# source code module CryptoSysPQC.cs
directly in your project.
#include "crsyspqc.hpp"
crsyspqc.cpp
, and have the files crsyspqc.hpp
and diCrPQC.h
in the same directory.diCrPQC.lib
import crsyspqc
#include "diCrPQC.h"
diCrPQC.lib
The core executable diCrPQC.dll
is a native Windows DLL compiled using
Microsoft Visual C++ for both Win32 (x86) and X64 platforms (there are separate DLL files for each platform).
This type of file used to be called a Win32 DLL.
All programming language interfaces require this core native DLL to exist in the library search path of the user's system.
The executable diCrPQC.dll
is compatible with all versions of Windows XP and above.
It does not require any other special libraries to work apart from the standard Win32 libraries available in all
modern versions of Windows.
The wrapper executable diCrSysPQCNet.dll
is a .NET Class Library
created with Microsoft Visual C# set to target Microsoft .NET Framework 4.0 and above.
It is compiled for all target platforms: Win32 and X64.
This requires at least .NET 4.0 and should be upwardly compatible with all later .NET versions.
It can be called from programs written in C# and VB.NET (aka VB2010+).
The .NET class library calls the functions in the core native DLL using System.Runtime.InteropServices
.
The source code for this wrapper DLL is provided in the distribution, which you can use directly in your C# projects instead of referencing the .NET DLL.
The source code is written in pure ANSI C with extensive internal checks for memory leaks and overflow issues. It uses code derived from the NIST round 3 public domain Reference Implementations (see below) with full memory zeroization of all intermediate values and fixes to make all comparisons constant time.
Includes SHA2 and SHAKE code based on the public domain implementations in
Thanks to Chris Celi (at) nist.gov for maintaining the ACVP test vectors which we have used extensively.
To contact us, please send us a message. To comment on this page, see comments below.
This page last updated 8 July 2025
Comments