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..ce02c1281f 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -839,6 +839,14 @@ 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 +noinst_HEADERS += sm2/sm2_locl.h + # 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..b1c7c2e54d 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 @@ -383,6 +384,19 @@ 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) + +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 bf1db3693b..662a503167 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 @@ -372,6 +373,19 @@ 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 + +TESTS += sm2evptest +check_PROGRAMS += sm2evptest +sm2evptest_SOURCES = sm2evptest.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"