[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openssl-gost] [gost-engine/engine] ea9884: CI: Build and test on Windows (MSVC)



  Branch: refs/heads/master
  Home:   https://github.com/gost-engine/engine
  Commit: ea9884745777b84bc59bc211e5ac2b65d7aa254a
      https://github.com/gost-engine/engine/commit/ea9884745777b84bc59bc211e5ac2b65d7aa254a
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M .editorconfig
    A .github/workflows/windows.yml

  Log Message:
  -----------
  CI: Build and test on Windows (MSVC)

Uses actions/cache to speed up engine rebuilds.

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: a8ba96bcbcbd5e1dab9af83396c9c6f4eabab423
      https://github.com/gost-engine/engine/commit/a8ba96bcbcbd5e1dab9af83396c9c6f4eabab423
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  MSVC: Disable deprecated declarations (C4996) warning

`/wd4996' disables deprecated declarations warning, this is analogous to
`-Wno-error=deprecated-declarations'. Error example:

  gost_pmeth.c(39,17): warning C4996: 'EVP_PKEY_get0': Since OpenSSL 3.0

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 1907d53ddbefbc85ce3bdea8320ff7610f47f22a
      https://github.com/gost-engine/engine/commit/1907d53ddbefbc85ce3bdea8320ff7610f47f22a
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  MSVC: Undo adding `-Wno-error=deprecated-declarations`

Since they are now global. Error message:

  cl : command line error D8021: invalid numeric argument '/Wno-error=deprecated-declarations'

Fixes: 5dfb598 ("CMakeLists.txt: Workaround openssl deprecation of HMAC and CMAC primitives")
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 8c81c6fde1485fc27f88b4ffbcd8217a294c2215
      https://github.com/gost-engine/engine/commit/8c81c6fde1485fc27f88b4ffbcd8217a294c2215
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_crypt.c

  Log Message:
  -----------
  MSVC: Fix signedness in comparison

Error message:

  gost_crypt.c(652,36): warning C4018: '<': signed/unsigned mismatch

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: b5613a2844470fd983cc3681633681a02ef6b44e
      https://github.com/gost-engine/engine/commit/b5613a2844470fd983cc3681633681a02ef6b44e
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_grasshopper_cipher.c
    M gost_keyexpimp.c
    M gost_omac.c
    M gost_pmeth.c

  Log Message:
  -----------
  MSVC: Fix unreachable code warning

Errors are like this:

  gost_pmeth.c(188): warning C4702: unreachable code
  gost_grasshopper_cipher.c(909): warning C4702: unreachable code

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 34dbff392d06471bd4d57395ad16b770e505e2a3
      https://github.com/gost-engine/engine/commit/34dbff392d06471bd4d57395ad16b770e505e2a3
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_crypt.c
    M gost_md.c

  Log Message:
  -----------
  MSVC: Fix Elvis operator

Error example:

  gost_md.c(54,45): error C2059: syntax error: ':'
  gost_md.c(67,5): error C2059: syntax error: 'if'
  gost_md.c(69,6): error C2143: syntax error: missing '{' before '->'
  gost_md.c(69,6): error C2059: syntax error: '->'
  gost_md.c(70,5): error C2059: syntax error: 'return'
  gost_md.c(71,1): error C2059: syntax error: '}'

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 1a69318c73dc30e570850431efd458bd73dd7a99
      https://github.com/gost-engine/engine/commit/1a69318c73dc30e570850431efd458bd73dd7a99
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_grasshopper_cipher.c

  Log Message:
  -----------
  MSVC: Fix unresolved externals (cipher_gost_grasshopper_ctracpkm)

Un-inline `cipher_gost_grasshopper_ctracpkm'. Error message:

  gost_core.lib(gost_omac_acpkm.obj) : error LNK2019: unresolved external symbol cipher_gost_grasshopper_ctracpkm referenced in function CMAC_ACPKM_Init
  gost.dll : fatal error LNK1120: 1 unresolved externals

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: bf06cbf5baa8d0f589bfb090455c3988c261a3f7
      https://github.com/gost-engine/engine/commit/bf06cbf5baa8d0f589bfb090455c3988c261a3f7
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_prov_cipher.c
    M gost_prov_digest.c

  Log Message:
  -----------
  MSVC: Replace tentative arrays with pointers

Error message example:

  gost_prov_cipher.c(237,63): error C2059: syntax error: '}'

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 4e903e81e783f74ec6624a3a53e96370492c0bba
      https://github.com/gost-engine/engine/commit/4e903e81e783f74ec6624a3a53e96370492c0bba
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gosthash2012_ref.h
    M gosthash2012_sse2.h

  Log Message:
  -----------
  MSVC: Remove GCC pragma messages

These planned to be removed later anyway. Error message:

  gosthash2012_ref.h(15,18): warning C4081: expected '('; found 'string'

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: ea08f653579978ba0e39d5a71bce9ed47452f0e3
      https://github.com/gost-engine/engine/commit/ea08f653579978ba0e39d5a71bce9ed47452f0e3
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_keyexpimp.c

  Log Message:
  -----------
  MSVC: Avoid use `htonl' since it requires linking with Winsock

No need external library (Ws2_32.lib) if we can easily implement it.
Error messages:

  gost_core.lib(gost_keyexpimp.obj) : error LNK2019: unresolved external symbol htonl referenced in function gost_kdftree2012_256
  gost.dll : fatal error LNK1120: 1 unresolved externals

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 55f0eb1b77c1c1bfc387927bad06210257f50f21
      https://github.com/gost-engine/engine/commit/55f0eb1b77c1c1bfc387927bad06210257f50f21
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_ciphers.c
    M test_digest.c
    M test_tls.c

  Log Message:
  -----------
  MSVC: Ifdef GCC pragmas

Error message:

  test_ciphers.c(37,9): warning C4068: unknown pragma 'GCC'

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 66c4ce5fb9fe3c3598a5707bde7ac6929ec0b83c
      https://github.com/gost-engine/engine/commit/66c4ce5fb9fe3c3598a5707bde7ac6929ec0b83c
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_ciphers.c

  Log Message:
  -----------
  MSVC: Replace variable-length automatic arrays with alloca

MSVC is not C99 compatible[1]. Errors:

  test_ciphers.c(312,25): error C2057: expected constant expression
  test_ciphers.c(312,25): error C2466: cannot allocate an array of constant size 0
  test_ciphers.c(312,26): error C2133: 'c': unknown size

Link: https://docs.microsoft.com/en-us/cpp/c-language/ansi-conformance
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: a0d13491d28ee12e1c5517a0684a571be96fc7a5
      https://github.com/gost-engine/engine/commit/a0d13491d28ee12e1c5517a0684a571be96fc7a5
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_ciphers.c
    M test_context.c
    M test_curves.c
    M test_derive.c
    M test_digest.c
    M test_keyexpimp.c
    M test_params.c
    M test_sign.c
    M test_tls.c

  Log Message:
  -----------
  MSVC: No support for GCC's compound statement expressions

Error messages:

  test_ciphers.c(329,5): error C2059: syntax error: '{'
  test_ciphers.c(329,5): error C2059: syntax error: '}'
  test_ciphers.c(329,5): error C2059: syntax error: ')'

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 141dc82447a18bc8660032216b9b42758c80d335
      https://github.com/gost-engine/engine/commit/141dc82447a18bc8660032216b9b42758c80d335
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_digest.c
    M test_params.c
    M test_sign.c

  Log Message:
  -----------
  MSVC: Fix signed/unsigned mismatch errors

  test_digest.c(513,2): warning C4389: '==': signed/unsigned mismatch
  test_digest.c(820,5): warning C4389: '==': signed/unsigned mismatch
  test_sign.c(241,22): warning C4389: '==': signed/unsigned mismatch
  test_params.c(1131,16): warning C4018: '<': signed/unsigned mismatch
  test_sign.c(241,22): warning C4389: '==': signed/unsigned mismatch

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 5ac243da2a2bb76afecacc47c84e0ba0e60bed14
      https://github.com/gost-engine/engine/commit/5ac243da2a2bb76afecacc47c84e0ba0e60bed14
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost12sum.c
    M test_keyexpimp.c

  Log Message:
  -----------
  MSVC: Fix include files

Error message:

  gost12sum.c(13,10): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
  gost12sum.c(80,23): warning C4013: 'getopt' undefined; assuming extern returning int
  test_keyexpimp.c(7,10): fatal error C1083: Cannot open include file: 'arpa/inet.h': No such file or directory

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: ae5079bb87b16f6ac437e5dc5409c1f83f551cea
      https://github.com/gost-engine/engine/commit/ae5079bb87b16f6ac437e5dc5409c1f83f551cea
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_keyexpimp.c

  Log Message:
  -----------
  MSVC: Fix absence of 'setenv'

Error message:

  test_keyexpimp.c(111,11): warning C4013: 'setenv' undefined; assuming extern returning int

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: a78aa26906bf544e7771c0af67fa074bd535ade9
      https://github.com/gost-engine/engine/commit/a78aa26906bf544e7771c0af67fa074bd535ade9
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  MSVC: Skip building Linux-only binaries

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 1ca11da3479fcc98ed8343c9d83684a87a0ee052
      https://github.com/gost-engine/engine/commit/1ca11da3479fcc98ed8343c9d83684a87a0ee052
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M test_ciphers.c
    M test_context.c
    M test_curves.c
    M test_derive.c
    M test_digest.c
    M test_gost2814789.c
    M test_gost89.c
    M test_keyexpimp.c
    M test_params.c
    M test_sign.c
    M test_tls.c
    M test_tlstree.c

  Log Message:
  -----------
  MSVC: Fix 'no OPENSSL_Applink' error

Error message:

  OPENSSL_Uplink(00007FF9FB00F600,08): no OPENSSL_Applink

Link: https://www.openssl.org/docs/faq.html#PROG3
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: fd3fc7d7ab1006a5e2768cfe62bb51dd82d2fb7d
      https://github.com/gost-engine/engine/commit/fd3fc7d7ab1006a5e2768cfe62bb51dd82d2fb7d
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  MSVC: Do not build in library form

Library form overwrites module form due to both having the same name `gost.dll'.
As temporary workaround do not build library form on Windows, until we invent
how to solve it properly. Currently, there is no known need of engine in the
library form on Windows.

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 7255dcf52d88fb99468023466b0554d76a48f862
      https://github.com/gost-engine/engine/commit/7255dcf52d88fb99468023466b0554d76a48f862
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  CMake: Test presence of prove for perl tests

This will skip tests on Windows, due to prove being `.bat' file and cmake will
be unable to run it.

Also, `HAVE_TEST2_V0' is renamed to be more meaningful.

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 10d31cde589e7400fec9169431a4d4d837fe23d0
      https://github.com/gost-engine/engine/commit/10d31cde589e7400fec9169431a4d4d837fe23d0
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M CMakeLists.txt

  Log Message:
  -----------
  CMake: Add CONFIG to the output dir if MSVC

This will fix setting of OPENSSL_ENGINES in ctest on Windows.

Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


  Commit: 1c34b3491fd1a83fa29f5d28d67cca62ef965d40
      https://github.com/gost-engine/engine/commit/1c34b3491fd1a83fa29f5d28d67cca62ef965d40
  Author: Vitaly Chikunov <vt@altlinux.org>
  Date:   2021-12-11 (Sat, 11 Dec 2021)

  Changed paths:
    M gost_prov.c

  Log Message:
  -----------
  MSVC: Add dllexport to OSSL_provider_init

`OSSL_provider_init' requires dllexport attribute to be visible (and thus
loadable) in DLL.

Link: https://github.com/openssl/openssl/issues/17203
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>


Compare: https://github.com/gost-engine/engine/compare/d74c05b73cc9...1c34b3491fd1