PowerCrp library
PowerCrp is an add-on library for cryptography application development in Xbase++.
PowerCrp library contains functions which implement a wide range of cryptographic algorithms used in various Internet standards. Their functionalities include cryptographic hash functions, message authentication codes (MAC), key derivation functions (KDF), one-time passwords (OTP), symmetric encryption, public and private key cryptography, key exchange, certificate and certificate store management, public key cryptography standards (PKCS) structures, and various utilities.
PowerCrp functions encapsulate most of the functionalities of various cryptographic standards, which are defined as function parameters. The functions are generalized and automated. You don't need to know cryptography and its various algorithms and systems. Instead, use PowerCrp functions as building blocks to create short, fast and efficient programs.
PowerCrp library supports Alaska Xbase++ V.1.8 to V.2.0.
PowerCrp features
Hash - Generate hash using various algorithms: md5, sha1, sha224, sha384, sha512, blake2b512, blake2s256, sm3, etc.
MAC - Generate message authentication code (MAC) using various algorithms: HMAC, KMAC, CMAC, GMAC, Blake2 MAC, Poly1305 MAC, etc.
KDF - Derive key using various key derivation functions (KDF): HMAC KDF, key-based KDF, Kerberos5 KDF, password-based KDF, one-step KDF, X942 KDF, etc.
OTP - Generate one-time password (OTP) using S/KEY and HOTP algorithms.
Cipher - Encrypt/decrypt data using various symmetric cipher algorithms: 3des, aes, aria, camellia, chacha20, seed, etc.
Encode - DER (Distinguished Encoding Rules) encode/decode and DER/PEM convert.
Key generate - Generate public and private key using various algorithms: RSA, DSA, DH, EC, X25519, X448, ED25519, ED448.
Key derive - Derive shared secret key to be used in key exchange, using various public/private key types: DH, ECDH, X25519, X448.
Key encrypt - Encrypt/decrypt data using varius public/private key types: RSA, DSA, DH, EC, X25519, X448.
Key signature - Sign/verify data using various private/public key types: RSA, DSA, ED25519, ED448.
Certificate - Retrieve various information of certificate: text, public key, serial number, subject, issuer, signature, validity dates, etc.
Certificate store - Add/delete certificate to/from certificate store. Import/export certificate and certificate key to/from certificate store. Retrieve certificate and certificate key from certificate store. Select certificate from certificate store.
PKCS - Encrypt/decrypt and sign/verify data using various public key cryptography standards structures: CMS, PKCS7, PKCS8, PKCS11, PKCS12.