2011-01-27 2 views
0

Microsoft CryptoAPI를 사용하는 Windows 응용 프로그램 (Visual Studio 사용)이 있습니다. 이제 데이터를 읽을 수 있고 WinApp에서 암호화 한 의 Mac OS X 응용 프로그램을 개발하고 WinApp에서 암호를 해독 할 Mac OS X의 데이터를 암호화해야합니다. 같은 방법으로 초기화 WinApp에 암호화/ENT 버튼을 누르면 DVR 내가 알고있는 것처럼Microsoft CryptoAPI를 Mac OS로 이식하는 경우

::CryptEncrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt, dwLen); 
::CryptDecrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt); 

, 나는 MD5를 구현하는 라이브러리를 찾을 필요가 :

::CryptAcquireContext(&m_hCryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); 
::CryptCreateHash(m_hCryptProv, CALG_MD5, 0, 0, &m_hCryptHash); 
::CryptHashData(m_hCryptHash, pbtPSW, dwPSWLen, 0); 
::CryptDeriveKey(m_hCryptProv, CALG_RC4, m_hCryptHash, 0, &m_hCryptKey); 

그리고 암호화/ENT 버튼을 누르면 DVR, 사용되는 다음 해싱 + RC4 인코딩/디코딩 그러한 라이브러리에는 개의 숫자가있는 것으로 보입니다. 예 : matrixSSL, OpenSSL. 그러나 라이브러리를 사용하면 확실하지 않습니다. 특히 을 고려하면 Sekturity/Crypting API에 익숙하지 않습니다. 누군가 특정 암호화 라이브러리를 추천 할 수 있습니까? 5 월 내 작업에 대한 코드 예제가 있습니까?

ADDITION :

그것은 큰 문제가 보인다는 (즉 동일한 키를 생성) 즉 Microsoft 버전과 호환됩니다, 나는 :: CryptDeriveKey의 휴대용 아날로그를 필요로한다는 것이다. 아무도 그런 사람을 안 압니까? 또는 :: CryptDeriveKey에 의해 키를 생성하는 알고리즘?

+0

흠, 당신도 소스가 무엇을 이해하지 않고 포트 암호화 관련 코드에 갈 수 있습니다. 보안상의 관점에서 많은 의미를 가지지는 않습니다 ... –

+0

Eugene, 내가하고 싶은 것은 - 원래의 CryptoAPI 기능을 휴대용 라이브러리의 아날로그로 바꾸십시오. 그리고이 작업은 가능한 한 짧은 시간이 걸리는 것이 바람직합니다. 이것은 중요도가 중요한 응용 프로그램이 아니며 암호화/암호 해독은 단순히 작고 중요하지 않은 부분입니다. – VitalyVal

+1

중요한 보안은 중요하지 않습니다. 당신이하는 일을 이해하지 않고서는 옳은 일을하지 않을 것입니다. –

답변

1

CyaSSL 임베디드 SSL 라이브러리를 살펴 보는 것이 좋습니다. 최대 TLS 1.2까지의 현재 표준을 지원하며 운영 체제 전반에서 이식성이 뛰어납니다. 특히, CyaSSL에는 찾고있는 암호화 작업을 수행 할 수있는 CTaoCrypt 암호화 라이브러리가 포함되어 있습니다.

CyaSSL에 대한 몇 가지 유용한 문서 링크 :

CTaoCrypt 사용 참조 : http://yassl.com/yaSSL/Docs_CTaoCrypt_Usage_Reference.html
CyaSSL 문서 페이지 : 당신이 CyaSSL를 다운로드하는 경우 http://yassl.com/yaSSL/Docs.html

, 당신은을 위해 비주얼 스튜디오 프로젝트 파일을 찾을 수 있습니다 봐.

감사합니다,
크리스

+0

Chris에게 감사드립니다. 원본 메시지 이외에 쓴 것처럼 주요 문제는 :: CryptDeriveKey 작업과 동일한 방식으로 CryptDeriveKey를 구현하는 것입니다. 원래의 접근 방식이 약하기 때문에 키는 암호화 된 파일과 함께 저장되지 않습니다. 그래서 키를 생성하는 절차를 재현 할 필요가 있습니다 (particulary :: CryptDeriveKey 함수). – VitalyVal

관련 문제