由Rinick寫makefile文件,可以在bcc下編譯成lib (
[email protected] )
壓縮包下有4個目錄
lib:包含lib檔案(及對應來源檔案供參考)使用前將goozo_crypt.obj和tomcrypt.lib兩個檔案複製到C++builder的lib目錄下
include:頭文件,使用前複製到C++builder的include目錄下
docs(tom):tom提供了加密函數庫的pdf說明(想進一步了解功能可以看頭文件和原始文件中的註釋)
Rinick s ECC:橢圓曲線非對稱加密的一個例子和密鑰產生器
幾個基本功能封裝成了獨立的函數,使用變得較為簡單
#include <goozo_crypt.h>後可使用下列函數加密: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
pchar中有300位元組內容,加密後儲存到pcharC,使用者密碼是111(AnsiString)
222為系統密碼(AnsiString),使得你的aes系統與他人的不同,可以當成是2層密碼吧
aes_desc為加密方式,可選的有:
blowfish_desc, rc5_desc, rc6_desc, rc2_desc, saferp_desc, safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc, rijnddesc, rijn, dij,n adesc, rijn_dac, rijn, ndesc, nijf, nijdesc, rijn, ndes c, twofish_desc, des_desc, des3_desc, cast5_desc, noekeon_desc, skipjack_desc, khazad_desc, anubis_desc
沒什麼特殊需求就用aes吧解密: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
pcharC中有300位元組加密內容,解密後儲存到pcharP中其餘參數同上記憶體摘要: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
pchar中有800位元組的內容,將他的MD5摘要保存在hash中
md5_desc為摘要方式,可選的有:
chc_desc, whirlpool_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, tiger_desc, rmd128_9md,cmddes
安全要求高的情況,推薦sha512或sha384。一般情況下md5就夠了檔案摘要: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
計算檔案C:1.txt的摘要,存放在hash中其餘參數同上
其他功能請參閱pdf說明和來源文件
加密函數庫支援以下內容提供一個超大整數庫加密支援的加密函數
Blowfish
XTEA
RC5
RC6
SAFER+
Rijndael (aka AES)
Twofish
SAFER (K64, SK64, K128, SK128)
RC2
DES, 3DES
CAST5
Noekeon
Skipjack
Anubis (with optional tweak as proposed by the developers)
Khazad
Chaining Modes (這部分我不用,不知道怎麼翻譯)
Modes come with a start, encrypt/decrypt and set/get IV interfaces.
Mode supported.
ECB
CBC
OFB
CFB
CTR
單向Hash 函數支援的hash方式.
MD2
MD4
MD5 (較為常用)
SHA-1
SHA-224/256/384/512 (Rinick推薦)
TIGER-192
RIPE-MD 128/160
WHIRLPOOL
資訊認證
FIPS-198 HMAC (支援所有hash函數)
CMAC, 也稱
OMAC1
(支援所有加密函數)
PMAC Authentication
Pelican MAC
資訊加密認證模式
EAX Mode
OCB Mode
CCM Mode (NIST spec)
GCM Mode (IEEE spec)
偽隨機數產生器(部分其他函數要使用)
Yarrow (based algorithm)
RC4
支援/dev/random, /dev/urandom 以及Win32 CSP RNG
Fortuna
SOBER-128
公鑰演算法
RSA (using PKCS #1 v2.1)
ECC (EC-DSA X9.62 數位簽章標準, X9.63 EC-DH,金鑰交換標準)
Rinick新增了一個ECC加密和解密的函數,用於實現軟體註冊等功能
DSA (使用者可以自己定義演算法製造數位簽章)
支援的其他標準
PKCS #1 (v2.1 padding)
PKCS #5
ASN.1 DER for SEQUENCE, INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER, IA5 STRING, PRINTABLE STRING, UTCTIME, CHOICE and NULL types.