Wickr-Crypto-C是C中Wickr安全消息協議的實現,該協議為所有Wickr產品提供了安全通信的平台。
可以在此處找到一份描述協議詳細信息及其安全模型詳細信息的白皮書。白皮書的降價版本也可以在Wiki中找到。
請注意
該加密lib僅用於公眾審查,以供教育,學術和代碼審核目的(*這不是開源許可,在此處提供了更多許可)。我們堅信開源運動的價值,並期待與社區在該項目和其他未來項目(包括GNU許可下)合作。
請將此存儲庫的問題跟踪器限制在白皮書中所述的協議實現中的代碼級錯誤。總是歡迎拉動請求!
有關協議本身的任何問題(即加密設計思想,建議,高級概念批評)都可以通過[email protected]。
有關所有其他安全問題,請在此處聯繫Wickr的Bug Bounty程序。
從這個加密貨幣自由開始,威克爾將向其客戶,合作夥伴和更大的社區開放源代碼,這就是為什麼:
透明度:對我們而言,與Wickr專業客戶分享Wickr Crypto的設計方式很重要
安全:雖然Wickr不是對等加密的短暫消息傳遞的新工具,但該協議代表Wickr產品中的新一代加密。我們有信心,GitHub社區將對我們如何進一步發展協議有想法和建設性建議,以使其更加強大,以防止新興攻擊(當然可以修復一兩個錯誤)
團隊:核心加密團隊長期以來一直是打開源代碼的強有力的內部擁護者,他們終於佔了上風。除了開玩笑之外,我們認為,除了所有Wickr產品都接受的常規外部安全審計外,還可以與公眾共享核心加密貨幣的好時機
WICKR協議的忠實實施可以在運輸和存儲中保密消息內容。它為以下功能提供動力:
代表庫可以使用的一組加密功能的結構。設計的目的是以有組織的通用方式公開安全原始。這允許協議實現不綁定到單個依賴項(例如OpenSSL)。它也旨在易於使用,並提供高級界面來實施最佳實踐。
當前的加密引擎的默認實現主要基於OpenSSL 1.1.0的EVP接口。
加密消息數據包編碼和解碼的低級別實現
高級接口,用於管理可以發送和接收加密消息數據包的端點。這是前端客戶端應用與加密庫庫集成的方式。
一台有助於加密連續數據流的機器。這用於在1:1或電話會議上的用戶之間的實時語音 /視頻流中編碼 /解碼數據。它帶有一個鍵,該密鑰先前通過消息傳遞協議進行了協商。特定呼叫中的每個數據流都有其自己的stream_cipher對象來保持其狀態。
該庫是在所有平台上使用CMAKE構建的。當前支持iOS,Android,Windows,MacOS和Linux。有關更多信息,請參見下面的平台特定說明和CMAKE選項
可以配置MACOS構建:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=USER_INSTALL_LOCATION ../
可以使用MSVC Generator配置Windows構建,如下
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=USER_INSTALL_LOCATION -G "Visual Studio 14 2015" ..
Windows構建不能使用下面記錄的標準make命令生成。相反,它依賴於視覺工作室的命令,如下所示:
msbuild WickrCryptoC.sln /p:Configuration=Release
運行測試從構建目錄調用以下內容
ctest
要將庫安裝到配置的安裝前綴
msbuild INSTALL.vcxproj /p:Configuration=Release
Linux構建可以使用標準CMake Flow配置,並具有一些選項
mkdir build
cd build
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=USER_INSTALL_LOCATION ../
目前,CMAKE項目已在ARMEABI-V7A,ARMEABI和X86 ABIS上進行了測試。 CMAKE目前尚未直接支持Android的測試,儘管可以通過ADB手動將測試目標編譯並上傳到設備
默認的Android API級別為18個在root Directory中的工具鏈Android.cmake文件中定義的18個。當前不建議修改此事
要配置CMAKE以構建Android NDK目標,您可以執行以下操作:
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-Android.cmake
-DCMAKE_ANDROID_NDK=USER_NDK_LOCATION
-DCMAKE_ANDROID_ARCH_ABI=OUTPUT_ARCH_AB
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=USER_INSTALL_LOCATION ../
提供的工具鏈可以支持模擬器和設備為iOS> 9.0作為脂肪庫構建。 X86 + X86_64為模擬器和ARMV7,ARMV7和ARM64脂肪庫生成脂肪庫,為該設備創建
為了配置CMAKE用於構建iOS SDK目標,您可以執行以下操作:
cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-iOS.cmake
-DCMAKE_BUILD_TYPE=Release
-DIOS_PLATFORM=OS|SIMULATOR
-DIOS_DEPLOYMENT_TARGET=9.0
-DCMAKE_INSTALL_PREFIX=USER_INSTALL_LOCATION ../
| CMAKE選項 | 描述 | 目標 |
|---|---|---|
| FIPS | 告訴CMAKE在FIPS模式下構建AWS_LC。 | 全部 |
| cmake_build_type | 發布或調試構建 | 全部 |
| cmake_install_prefix | make install時安裝標頭和構建庫的位置稱為 | 全部 |
| cmake_toolchain_file | 告訴CMAKE針對Android NDK交叉編譯工具鏈 | Android / iOS |
| cmake_android_arch_abi | 為此構建的ABI。支持的值是Armeabi,Armeabi-V7a,x86 | 安卓 |
| cmake_android_ndk | NDK安裝的根目錄的位置 | 安卓 |
| ios_platform | 設置為ARMV7,ARMV7,ARM64構建或X86_64的OS OS | ios |
| ios_deployment_target | iOS構建的最小目標(9.0+推薦) | ios |
| build_tests | 告訴CMAKE進行BuID測試(默認情況下) | 全部 |
注意:有關Windows的構建,請參見Windows部分
建造圖書館
make
要將庫安裝到配置的安裝前綴
make install
運行捆綁的測試目標(MACOS,Windows,Linux)。需要-DBUILD_TESTS=ON配置構建時。
make test
版權所有©2012-2017 Wickr Inc.保留所有權利。
該代碼僅用於教育,學術和代碼審查目的。該代碼的商業用途明確禁止。有關其他詳細信息,請參閱許可證。
該代碼可用“原樣”,並且沒有任何明示或暗示的保證,可用於健身,適銷性,不侵權或其他方式。它不是在貿易中提供的,而是在自願的基礎上代表作者出於持有人的利益而自願提供,也沒有用於消費者使用或本許可條款之外的任何其他用途。任何訪問代碼的人都應該具有必要的專業知識來保護其係統和設備,並僅訪問和使用代碼僅用於審核目的。被許可人承擔訪問和使用代碼的風險。特別是,由於被許可人訪問和/或在被許可人系統上使用代碼而可能發生的任何干擾或不良影響,作者對可能發生的任何干擾或不利影響不承擔任何責任。
此分佈包括加密軟件。您目前居住的國家可能對加密軟件的進口,擁有,使用和/或重新出口對另一個國家/地區有限制。在使用任何加密軟件之前,請查看有關進口,擁有,使用和重新出口加密軟件的法律,法規和政策,以查看是否允許使用。有關更多信息,請參見http://www.wassenaar.org/。
美國政府工商部工業與安全局(BIS)將該軟件歸類為出口商品控制編號(ECCN)5D002.C.1,其中包括使用或執行具有非對稱算法的加密功能的信息安全軟件。此分配的形式和方式使其有資格在許可證中的導出ENG技術軟件無限制(TSU)異常(請參閱BIS Export Administration Arigulation,第740.13節)有關對象代碼和源代碼。