>백엔드 개발 >Golang >golang gmssl이 컴파일에 실패했습니다.

golang gmssl이 컴파일에 실패했습니다.

(*-*)浩
(*-*)浩원래의
2019-12-16 15:37:282857검색

golang gmssl이 컴파일에 실패했습니다.

이전에 다음 스크립트를 사용하여 우분투에서 openssl-1.0.2k를 크로스 컴파일했습니다. (권장 학습: go#🎜 🎜#)

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared
sed -i "s/ -m64//g" Makefile
make
make install
라이브러리 파일, 도구 등의 구축 과정을 포함한 모든 개발 환경은 svn을 통해 제어됩니다. 따라서 config를 사용하여 Makefile 파일을 생성한 후 스크립트를 사용하면 자동으로 삭제됩니다. arm 컴파일러는 m64 옵션을 지원합니다.

gmssl을 컴파일하는 데 동일한 방법을 사용하면 장치에서 비밀 키를 생성할 때 런타임 오류가 발생합니다. openssl-1.1.1 미리보기 버전은 컴파일 후 응답을 멈춥니다.

많은 탐색 끝에 마침내 이유를 찾았습니다. 대상 플랫폼을 구성하려면 구성을 사용해야 합니다! 새로운 컴파일 스크립트는 다음과 같습니다.

./Configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4
make
make install

arm 장치이므로 여기서 대상 플랫폼은 linux-armv4로 구성됩니다. 다른 플랫폼의 컴파일 방법도 비슷합니다. 지원되는 모든 플랫폼을 표시하는 데 도움이 됩니다.

또한 arm 플랫폼 지정 시 지원되지 않는 m64 옵션은 Makefile에 나타나지 않으므로 삭제할 필요가 없습니다.

새로운 컴파일 방법을 사용한 후에는 gmssl과 openssl-1.1.1 모두 arm 장치에서 정상적으로 작동할 수 있습니다.

GmSSL-Go는 GmSSL 라이브러리의 Go 언어 인터페이스 바인딩입니다.

, 은 암호화 알고리즘, X.509 인증서, SSL 프로토콜 및 Go 언어용 엔진을 제공합니다. 응용 프로그램 및 기타 기능. GmSSL-Go는 CGO를 사용하여 GmSSL의 고급 인터페이스를 Go 언어 구성 요소로 캡슐화합니다. 이는 GmSSL 라이브러리와 느슨하게 결합된 경량 중간 계층입니다. 기본 GmSSL 라이브러리에서 제공됩니다.

GmSSL-Go를 사용하는 이유

Go 언어 공식 라이브러리에서는 일반적으로 사용되는 암호화 알고리즘 패키지와 SSL 프로토콜 패키지를 제공하지만, GmSSL-Go를 프로젝트에 통합한 일부 타사 순수 Go 언어 암호화 라이브러리에는 여전히 대체할 수 없는 많은 이점이 있습니다.

GmSSL-Go는 기본 GmSSL 라이브러리를 통해 완전하고 풍부한 국가 암호화 알고리즘을 제공합니다. SSL 프로토콜 지원.

GmSSL-Go는 국가 암호화 표준을 충족하는 U-shield 및 PCI-E 암호화 카드와 같은 국내 하드웨어 암호화 장치를 충족하는 엔진 개체를 통해 시스템 보안, 가용성 및 비밀번호 준수를 제공할 수 있습니다.

GmSSL-Go는 CGO를 사용하여 GmSSL 라이브러리의 암호화 알고리즘 구현을 호출합니다. 이는 순수 Go 언어 구현에 비해 암호화 알고리즘에서 성능 이점이 있습니다.

GmSSL-Go의 기능과 성능은 GmSSL 업그레이드를 통해 지속적으로 향상되었습니다.

위 내용은 golang gmssl이 컴파일에 실패했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.