이것은 OpenSSL 3.0 공급자 모듈의 암호에 필요한 최소 필요한 사항을 보여주는 매우 작은 데모입니다.
이 제공자는 알파벳 문자뿐만 아니라 바이트 값의 전체 범위를 다루는 잘 알려진 Vigenère 암호의 확장 버전을 구현합니다. 이 암호와 그 역사에 대한 설명은 https://en.wikipedia.org/wiki/vigenère_cipher를 참조하십시오.
이 시대 에이 암호는 실제 상황에서 사용해서는 안되지만 구현은 다른 암호 제공 업체가 시작할 수있는 템플릿으로 사용될 수 있습니다. 이것을 Real에 사용하려면 16 세기로 돌아가십시오.
자세한 사용자 문서는 Vigenere.md에서 찾을 수 있습니다.
소스 저장소를 완성하려면 모든 git 서브 모듈도 최신 상태 여야합니다. 처음으로 다음과 같이 초기화해야합니다.
git submodule update --init
다음 번에는 --init
건너 뛸 수 있습니다.
이 공급자를 구축하려면 CMAKE와 지원하는 건물 도구 체인이 필요합니다.
OpenSSL 3의 시스템 설치를위한 간단한 구성 :
cmake -S . -B _build
OpenSSL 3을 다른 곳에 설치 한 경우 {path}
OpenSSL 3 설치 의 디렉토리로 대체하여 다음을 대신 수행하십시오.
cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build
구축하려면 다음을 수행하십시오.
cmake --build _build
결과는 _build/vigenere.so
또는 _build/Debug/vigenere.dll
입니다.
OpenSSL은 모듈을 찾을 수있는 위치를 지정하는 여러 가지 방법을 제공합니다.
관련 openssl
서브 명령에 대한 명령 줄 옵션. 구체적으로, 제공자 모듈을 찾기 위해 다른 경로를 추가하기 위해 -provider-path
및 -provider
옵션을 결합해야합니다.
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider-path _build -provider vigenere
-e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
참조 : Openssl (1)
환경 변수는 OpenSSL의 libcrypto를 연결하는 모든 프로그램에서 작동하는 OPENSSL_MODULES
엽니 다.
$ export OPENSSL_MODULES=_build
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider vigenere -e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
REF : OpenSSL-ENV (7)
프로그래밍 방식으로, 프로그램에서 제공하고 싶다면 -provider-path
openssl
부계 명령에서하는 일.
REF : OSSL_PROVIDER (3)