makefile เขียนโดย Rinick และสามารถคอมไพล์เป็น lib ภายใต้ bcc (
[email protected])
มี 4 ไดเร็กทอรีภายใต้แพ็คเกจบีบอัด
lib: ประกอบด้วยไฟล์ lib (และไฟล์ต้นฉบับที่เกี่ยวข้องเพื่อใช้อ้างอิง) คัดลอกสองไฟล์ goozo_crypt.obj และ tomcrypt.lib ไปยังไดเร็กทอรี lib ของ C++ builder ก่อนใช้งาน
include: ไฟล์ส่วนหัว ให้คัดลอกไปยังไดเร็กทอรีรวมของ C++ builder ก่อนใช้งาน
docs(tom): tom ให้คำอธิบายในรูปแบบไฟล์ PDF ของไลบรารีฟังก์ชันการเข้ารหัส (หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันต่างๆ คุณสามารถอ่านความคิดเห็นในไฟล์ส่วนหัวและไฟล์ต้นฉบับได้)
ECC ของ Rinick: ตัวอย่างและตัวสร้างคีย์สำหรับการเข้ารหัสแบบอสมมาตรแบบวงรี
ฟังก์ชันพื้นฐานหลายอย่างถูกรวมไว้ในฟังก์ชันอิสระ ทำให้ใช้งานได้ง่ายขึ้น
หลังจาก #include <goozo_crypt.h> คุณสามารถใช้ฟังก์ชันต่อไปนี้เพื่อเข้ารหัส: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
มีเนื้อหาขนาด 300 ไบต์ใน pchar ซึ่งถูกเข้ารหัสและบันทึกลงใน pcharC รหัสผ่านผู้ใช้คือ 111 (AnsiString)
222 คือรหัสผ่านระบบ (AnsiString) ซึ่งทำให้ระบบ aes ของคุณแตกต่างจากระบบอื่น ๆ ถือได้ว่าเป็นรหัสผ่านสองชั้น
aes_desc เป็นวิธีการเข้ารหัส โดยมีตัวเลือกดังนี้:
เป่าปลา _ อธิบาย, des3_desc, cast5_desc, noekeon_desc, skipjack_desc, khazad_desc, anubis_desc
หากไม่มีความจำเป็นพิเศษ เพียงใช้ aes เพื่อถอดรหัส: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
มีเนื้อหาที่เข้ารหัส 300 ไบต์ใน pcharC หลังจากการถอดรหัส พารามิเตอร์ที่เหลือจะเหมือนกับข้อมูลสรุปหน่วยความจำ: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
pchar มีเนื้อหา 800 ไบต์ และการแยกย่อย MD5 ของเขาจะถูกบันทึกไว้ในแฮช
md5_desc เป็นโหมดสรุป ตัวเลือกคือ:
chc_desc, วังวน_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, Tiger_desc, rmd128_desc, rmd160_desc
หากข้อกำหนดด้านความปลอดภัยสูง แนะนำให้ใช้ sha512 หรือ sha384 โดยทั่วไปแล้ว md5 ก็เพียงพอแล้ว สรุปไฟล์: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
คำนวณไดเจสต์ของไฟล์ C:1.txt และจัดเก็บไว้ในแฮช พารามิเตอร์ที่เหลือจะเหมือนกับด้านบน
สำหรับฟังก์ชันอื่นๆ โปรดดูคำแนะนำในรูปแบบ pdf และไฟล์ต้นฉบับ
ไลบรารีฟังก์ชันการเข้ารหัสรองรับฟังก์ชันการเข้ารหัสต่อไปนี้ที่ให้การสนับสนุนการเข้ารหัสไลบรารีจำนวนเต็มขนาดใหญ่มาก
ปักเป้า
เอ็กซ์ทีเอ
RC5
RC6
ปลอดภัยยิ่งขึ้น+
รินดาเอล (เออีเอส)
ปลาทูฟิช
ปลอดภัย (K64, SK64, K128, SK128)
RC2
ดีเอส, 3ดีเอส
นักแสดง5
นู๋กอน
ข้ามแจ็ค
Anubis (พร้อมการปรับแต่งเพิ่มเติมตามที่เสนอโดยนักพัฒนา)
คาซาด
Chaining Modes (ไม่ได้ใช้ส่วนนี้ ไม่รู้จะแปลยังไง)
โหมดมาพร้อมกับการเริ่มต้น เข้ารหัส/ถอดรหัส และตั้งค่า/รับอินเทอร์เฟซ IV
รองรับโหมดแล้ว
อีซีบี
ซีบีซี
โอเอฟบี
ซีเอฟบี
CTR
วิธีการแฮชที่รองรับโดยฟังก์ชันแฮชทางเดียว
เอ็มดี2
เอ็มดี4
MD5 (ใช้กันทั่วไปมากกว่า)
SHA-1
SHA-224/256/384/512 (แนะนำโดย Rinick)
ไทเกอร์-192
สุก-MD 128/160
อ่างน้ำวน
การตรวจสอบข้อมูล
FIPS-198 HMAC (รองรับฟังก์ชันแฮชทั้งหมด)
CMAC หรือที่รู้จักในชื่อ
โอแมค1
(รองรับฟังก์ชั่นการเข้ารหัสทั้งหมด)
การรับรองความถูกต้อง PMAC
เพลิแกน แมค
โหมดการรับรองความถูกต้องการเข้ารหัสข้อมูล
โหมด EAX
โหมดโอซีบี
โหมด CCM (ข้อกำหนด NIST)
โหมด GCM (ข้อมูลจำเพาะ IEEE)
เครื่องกำเนิดตัวเลขสุ่มหลอก (ใช้โดยฟังก์ชันอื่น ๆ )
ยาร์โรว์ (อัลกอริทึมพื้นฐาน)
RC4
รองรับ /dev/random, /dev/urandom และ Win32 CSP RNG
ฟอร์จูน่า
โซเบอร์-128
อัลกอริธึมกุญแจสาธารณะ
RSA (ใช้ PKCS #1 v2.1)
ECC (มาตรฐานลายเซ็นดิจิทัล EC-DSA X9.62, X9.63 EC-DH, มาตรฐานการแลกเปลี่ยนคีย์)
Rinick เพิ่มฟังก์ชันการเข้ารหัสและถอดรหัส ECC เพื่อใช้งานฟังก์ชันต่างๆ เช่น การลงทะเบียนซอฟต์แวร์
DSA (ผู้ใช้สามารถกำหนดอัลกอริทึมของตนเองเพื่อสร้างลายเซ็นดิจิทัล)
รองรับมาตรฐานอื่นๆ
PKCS #1 (ช่องว่างภายใน v2.1)
พีเคซีเอส #5
ASN.1 DER สำหรับประเภท SEQUENCE, INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER, IA5 STRING, PRINTABLE STRING, UTCTIME, CHOICE และ NULL