Using changes from rom-properties, which includes building gtest as a
DLL on Windows.
This update fixes a bunch of -Wsuggest-override warnings, e.g.:
In file included from extlib/googletest/googletest/include/gtest/gtest-death-test.h:41,
from extlib/googletest/googletest/include/gtest/gtest.h:60,
from src/libwiicrypto/tests/CertVerifyTest.cpp:10:
extlib/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h:150:16: warning: ‘virtual bool testing::internal::DefaultDeathTestFactory::Create(const char*, const testing::internal::RE*, const char*, int, testing::internal::DeathTest**)’ can be marked override [-Wsuggest-override]
150 | virtual bool Create(const char* statement, const RE* regex,
| ^~~~~~
Added Google Test v1.8.0 from rom-properties.
Reworked cert_verify() to support both RSA-4096 and RSA-2048 signatures
and public keys. The function now requires all certificates to use
big-endian, so cert_store.c now uses BE32_CONST() to store the values
as big-endian.
BE32_CONST() is a macro that uses shifting for MSVC and intrinsics for
gcc. This is needed because MSVC 2010 doesn't realize that its byteswap
intrinsics result in constant values. (Later versions might...)
cert.c: New function cert_get_size() that returns the full size of a
built-in certificate.
CertVerifyTest currently tests the retail ticket and TMD certificates.
Both tests pass with all of these changes.