프로젝트 소개

tc_rust는 Bouncy Castle C# 라이브러리에서 포팅된 순수 Rust 암호화 워크스페이스입니다. 이는 Rust, 암호화 알고리즘, API 설계에 대한 개인적인 학습 프로젝트로, Bouncy Castle Inc.와는 무관하며 공식적으로 승인되지 않았습니다. 불안정한 API와 보안 감사가 없기 때문에, 프로덕션이나 실제 보안 애플리케이션에는 적합하지 않습니다. 이 라이브러리는 모듈식 크레이트로 구성된 포괄적인 암호화 원시 함수 세트를 제공합니다. 블록 암호 지원에는 AES, ARIA, Camellia, DES, SM4 등 28개의 공개 엔진이 포함되며, 알려진 답변 테스트가 있습니다. 스트림 암호 엔진은 RC4, ChaCha, Salsa20, HC-128/256을 다룹니다. 또한 ECB, CBC, CTR, GCTR을 포함한 8개의 블록 암호 모드 패밀리를 구현하지만, 패딩과 인증은 제공하지 않습니다. 다이제스트 지원은 SHA-2/3, BLAKE2/3, MD5, RIPEMD 변종 등 45개의 내보내기 유형으로 매우 광범위합니다. 수학적 기초로는 임의 정밀도 정수, 이진 필드 산술, SEC 및 SM2 곡선을 위한 타원 곡선 연산이 있습니다. X25519/X448 키 교환과 Ed25519/Ed448 서명을 엄격한 검증 모드로 지원합니다. 키 래핑 구현은 RFC 3394, RFC 5649, DSTU 7624 표준을 따릅니다. 아키텍처는 `no_std` 호환성을 강조하며, AES-NI 및 AVX2 가속과 같은 성능 최적화를 위해 `alloc` 또는 `std`를 요구하는 크레이트가 있습니다. 의존성 그래프는 비순환적으로 설계되어 사용자가 필요한 레이어만 선택할 수 있습니다. 이 프로젝트는 MIT 또는 Apache-2.0 라이선스로 제공됩니다.