From d1e6f5abc733ca61abe85949d29915ecdcfc2238 Mon Sep 17 00:00:00 2001 From: Nickolay Olshevsky Date: Thu, 7 Mar 2019 16:24:56 +0300 Subject: [PATCH 1/3] Support for sm2 sources. --- ChangeLog | 2 ++ crypto/CMakeLists.txt | 5 +++++ crypto/Makefile.am | 7 +++++++ tests/CMakeLists.txt | 9 +++++++++ tests/Makefile.am | 9 +++++++++ update.sh | 2 +- 6 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2b8c976904..b44b1f5600 100644 --- a/ChangeLog +++ b/ChangeLog @@ -30,6 +30,8 @@ LibreSSL Portable Release Notes: 2.9.0 - Development release + * Added the SM2 public key algorithm from the Chinese standard GB/T 32918-2016. + * Added the SM4 block cipher from the Chinese standard GB/T 32907-2016. * Fixed warnings about clock_gettime on Windows Visual Studio builds. diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 0d65874295..68bf7ca205 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -683,6 +683,11 @@ set( sha/sha1dgst.c sha/sha256.c sha/sha512.c + sm2/sm2_crypt + sm2/sm2_err.c + sm2/sm2_pmeth.c + sm2/sm2_sign.c + sm2/sm2_za.c sm3/sm3.c sm4/sm4.c stack/stack.c diff --git a/crypto/Makefile.am b/crypto/Makefile.am index ab4ceb17fb..5dd4378d4b 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -839,6 +839,13 @@ libcrypto_la_SOURCES += sha/sha256.c libcrypto_la_SOURCES += sha/sha512.c noinst_HEADERS += sha/sha_locl.h +# sm2 +libcrypto_la_SOURCES += sm2/sm2_crypt.c +libcrypto_la_SOURCES += sm2/sm2_err.c +libcrypto_la_SOURCES += sm2/sm2_pmeth.c +libcrypto_la_SOURCES += sm2/sm2_sign.c +libcrypto_la_SOURCES += sm2/sm2_za.c + # sm3 libcrypto_la_SOURCES += sm3/sm3.c noinst_HEADERS += sm3/sm3_locl.h diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 25e235229b..39ec86aa12 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -383,6 +383,15 @@ add_executable(sha512test sha512test.c) target_link_libraries(sha512test ${OPENSSL_LIBS}) add_test(sha512test sha512test) +# sm2test +add_executable(sm2crypttest sm2crypttest.c) +target_link_libraries(sm2crypttest ${OPENSSL_LIBS}) +add_test(sm2crypttest sm2crypttest) + +add_executable(sm2sigtest sm2sigtest.c) +target_link_libraries(sm2sigtest ${OPENSSL_LIBS}) +add_test(sm2sigtest sm2sigtest) + # sm3test add_executable(sm3test sm3test.c) target_link_libraries(sm3test ${OPENSSL_LIBS}) diff --git a/tests/Makefile.am b/tests/Makefile.am index bf1db3693b..c559b8a797 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -372,6 +372,15 @@ TESTS += sha512test check_PROGRAMS += sha512test sha512test_SOURCES = sha512test.c +# sm2test +TESTS += sm2crypttest +check_PROGRAMS += sm2crypttest +sm2crypttest_SOURCES = sm2crypttest.c + +TESTS += sm2sigtest +check_PROGRAMS += sm2sigtest +sm2sigtest_SOURCES = sm2sigtest.c + # sm3test TESTS += sm3test check_PROGRAMS += sm3test diff --git a/update.sh b/update.sh index 2e1f5c75a8..81f74554d3 100755 --- a/update.sh +++ b/update.sh @@ -132,7 +132,7 @@ copy_hdrs $libcrypto_src "stack/stack.h lhash/lhash.h stack/safestack.h dsa/dsa.h engine/engine.h ui/ui.h pkcs12/pkcs12.h ts/ts.h md4/md4.h ripemd/ripemd.h whrlpool/whrlpool.h idea/idea.h rc2/rc2.h rc4/rc4.h ui/ui_compat.h txt_db/txt_db.h - sm3/sm3.h sm4/sm4.h chacha/chacha.h evp/evp.h poly1305/poly1305.h + sm2/sm2.h sm3/sm3.h sm4/sm4.h chacha/chacha.h evp/evp.h poly1305/poly1305.h camellia/camellia.h gost/gost.h curve25519/curve25519.h" copy_hdrs $libssl_src "srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h" From 3d66413146e46b1234cf86841768e9804972a8d3 Mon Sep 17 00:00:00 2001 From: Nickolay Olshevsky Date: Tue, 19 Mar 2019 17:40:35 +0300 Subject: [PATCH 2/3] Add sm2 local header. --- crypto/Makefile.am | 1 + tests/CMakeLists.txt | 1 + tests/Makefile.am | 1 + 3 files changed, 3 insertions(+) diff --git a/crypto/Makefile.am b/crypto/Makefile.am index 5dd4378d4b..ce02c1281f 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -845,6 +845,7 @@ libcrypto_la_SOURCES += sm2/sm2_err.c libcrypto_la_SOURCES += sm2/sm2_pmeth.c libcrypto_la_SOURCES += sm2/sm2_sign.c libcrypto_la_SOURCES += sm2/sm2_za.c +noinst_HEADERS += sm2/sm2_locl.h # sm3 libcrypto_la_SOURCES += sm3/sm3.c diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 39ec86aa12..6d8d9af11d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2,6 +2,7 @@ include_directories( . ../crypto/modes ../crypto/asn1 + ../crypto/sm2 ../ssl ../tls ../apps/openssl diff --git a/tests/Makefile.am b/tests/Makefile.am index c559b8a797..313f56f3fc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/Makefile.am.common AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1 +AM_CPPFLAGS += -I $(top_srcdir)/crypto/sm2 AM_CPPFLAGS += -I $(top_srcdir)/ssl AM_CPPFLAGS += -I $(top_srcdir)/tls AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl From 002304e04c65c2b98ac01e5e281dbea9ac12722a Mon Sep 17 00:00:00 2001 From: Nickolay Olshevsky Date: Thu, 21 Mar 2019 19:06:27 +0300 Subject: [PATCH 3/3] Add sm2evptest --- tests/CMakeLists.txt | 4 ++++ tests/Makefile.am | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6d8d9af11d..b1c7c2e54d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -393,6 +393,10 @@ add_executable(sm2sigtest sm2sigtest.c) target_link_libraries(sm2sigtest ${OPENSSL_LIBS}) add_test(sm2sigtest sm2sigtest) +add_executable(sm2evptest sm2evptest.c) +target_link_libraries(sm2evptest ${OPENSSL_LIBS}) +add_test(sm2evptest sm2evptest) + # sm3test add_executable(sm3test sm3test.c) target_link_libraries(sm3test ${OPENSSL_LIBS}) diff --git a/tests/Makefile.am b/tests/Makefile.am index 313f56f3fc..662a503167 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -382,6 +382,10 @@ TESTS += sm2sigtest check_PROGRAMS += sm2sigtest sm2sigtest_SOURCES = sm2sigtest.c +TESTS += sm2evptest +check_PROGRAMS += sm2evptest +sm2evptest_SOURCES = sm2evptest.c + # sm3test TESTS += sm3test check_PROGRAMS += sm3test