diff --git a/stepmania/src/crypto51/fips140.cpp b/stepmania/src/crypto51/fips140.cpp
deleted file mode 100644
index 7781956a2e..0000000000
--- a/stepmania/src/crypto51/fips140.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// fips140.cpp - written and placed in the public domain by Wei Dai
-
-#include "pch.h"
-#include "fips140.h"
-#include "trdlocal.h" // needs to be included last for cygwin
-
-NAMESPACE_BEGIN(CryptoPP)
-
-// Define this to 1 to turn on FIPS 140-2 compliance features, including additional tests during
-// startup, random number generation, and key generation. These tests may affect performance.
-#ifndef CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
-#define CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 0
-#endif
-
-#if (CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 && !defined(THREADS_AVAILABLE))
-#error FIPS 140-2 compliance requires the availability of thread local storage.
-#endif
-
-#if (CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2 && !defined(OS_RNG_AVAILABLE))
-#error FIPS 140-2 compliance requires the availability of OS provided RNG.
-#endif
-
-PowerUpSelfTestStatus g_powerUpSelfTestStatus = POWER_UP_SELF_TEST_NOT_DONE;
-
-bool FIPS_140_2_ComplianceEnabled()
-{
- return CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2;
-}
-
-void SimulatePowerUpSelfTestFailure()
-{
- g_powerUpSelfTestStatus = POWER_UP_SELF_TEST_FAILED;
-}
-
-PowerUpSelfTestStatus GetPowerUpSelfTestStatus()
-{
- return g_powerUpSelfTestStatus;
-}
-
-#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
-ThreadLocalStorage & AccessPowerUpSelfTestInProgress()
-{
- static ThreadLocalStorage selfTestInProgress;
- return selfTestInProgress;
-}
-#endif
-
-bool PowerUpSelfTestInProgressOnThisThread()
-{
-#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
- return AccessPowerUpSelfTestInProgress().GetValue() != NULL;
-#else
- assert(false); // should not be called
- return false;
-#endif
-}
-
-void SetPowerUpSelfTestInProgressOnThisThread(bool inProgress)
-{
-#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
- AccessPowerUpSelfTestInProgress().SetValue((void *)inProgress);
-#endif
-}
-
-void EncryptionPairwiseConsistencyTest_FIPS_140_Only(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor)
-{
-#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
- EncryptionPairwiseConsistencyTest(encryptor, decryptor);
-#endif
-}
-
-void SignaturePairwiseConsistencyTest_FIPS_140_Only(const PK_Signer &signer, const PK_Verifier &verifier)
-{
-#if CRYPTOPP_ENABLE_COMPLIANCE_WITH_FIPS_140_2
- SignaturePairwiseConsistencyTest(signer, verifier);
-#endif
-}
-
-NAMESPACE_END
diff --git a/stepmania/src/crypto51/fips140.h b/stepmania/src/crypto51/fips140.h
deleted file mode 100644
index 76353ed5b1..0000000000
--- a/stepmania/src/crypto51/fips140.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef CRYPTOPP_FIPS140_H
-#define CRYPTOPP_FIPS140_H
-
-/*! \file
- FIPS 140 related functions and classes.
-*/
-
-#include "cryptlib.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-//! exception thrown when a crypto algorithm is used after a self test fails
-class SelfTestFailure : public Exception
-{
-public:
- explicit SelfTestFailure(const std::string &s) : Exception(OTHER_ERROR, s) {}
-};
-
-//! returns whether FIPS 140-2 compliance features were enabled at compile time
-bool FIPS_140_2_ComplianceEnabled();
-
-//! enum values representing status of the power-up self test
-enum PowerUpSelfTestStatus {POWER_UP_SELF_TEST_NOT_DONE, POWER_UP_SELF_TEST_FAILED, POWER_UP_SELF_TEST_PASSED};
-
-//! perform the power-up self test, and set the self test status
-void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleSha1Digest);
-
-//! set the power-up self test status to POWER_UP_SELF_TEST_FAILED
-void SimulatePowerUpSelfTestFailure();
-
-//! return the current power-up self test status
-PowerUpSelfTestStatus GetPowerUpSelfTestStatus();
-
-// this is used by Algorithm constructor to allow Algorithm objects to be constructed for the self test
-bool PowerUpSelfTestInProgressOnThisThread();
-
-void SetPowerUpSelfTestInProgressOnThisThread(bool inProgress);
-
-void SignaturePairwiseConsistencyTest(const PK_Signer &signer, const PK_Verifier &verifier);
-void EncryptionPairwiseConsistencyTest(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor);
-
-void SignaturePairwiseConsistencyTest_FIPS_140_Only(const PK_Signer &signer, const PK_Verifier &verifier);
-void EncryptionPairwiseConsistencyTest_FIPS_140_Only(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor);
-
-NAMESPACE_END
-
-#endif
diff --git a/stepmania/src/crypto51/md5.cpp b/stepmania/src/crypto51/md5.cpp
deleted file mode 100644
index 7bd4f38530..0000000000
--- a/stepmania/src/crypto51/md5.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// md5.cpp - modified by Wei Dai from Colin Plumb's public domain md5.c
-// any modifications are placed in the public domain
-
-#include "pch.h"
-#include "md5.h"
-#include "misc.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-void MD5_TestInstantiations()
-{
- MD5 x;
-}
-
-void MD5::Init()
-{
- m_digest[0] = 0x67452301L;
- m_digest[1] = 0xefcdab89L;
- m_digest[2] = 0x98badcfeL;
- m_digest[3] = 0x10325476L;
-}
-
-void MD5::Transform (word32 *digest, const word32 *in)
-{
-// #define F1(x, y, z) (x & y | ~x & z)
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-#define MD5STEP(f, w, x, y, z, data, s) \
- w = rotlFixed(w + f(x, y, z) + data, s) + x
-
- word32 a, b, c, d;
-
- a=digest[0];
- b=digest[1];
- c=digest[2];
- d=digest[3];
-
- MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
- MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
- MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
- digest[0]+=a;
- digest[1]+=b;
- digest[2]+=c;
- digest[3]+=d;
-}
-
-NAMESPACE_END
diff --git a/stepmania/src/crypto51/md5.h b/stepmania/src/crypto51/md5.h
deleted file mode 100644
index 2e8850f9ce..0000000000
--- a/stepmania/src/crypto51/md5.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef CRYPTOPP_MD5_H
-#define CRYPTOPP_MD5_H
-
-#include "iterhash.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-//! MD5
-/*! 128 Bit Hash */
-class MD5 : public IteratedHashWithStaticTransform
-{
-public:
- enum {DIGESTSIZE = 16};
- MD5() : IteratedHashWithStaticTransform(DIGESTSIZE) {Init();}
- static void Transform(word32 *digest, const word32 *data);
- static const char * StaticAlgorithmName() {return "MD5";}
-
-protected:
- void Init();
-};
-
-NAMESPACE_END
-
-#endif
diff --git a/stepmania/src/crypto51/pssr.cpp b/stepmania/src/crypto51/pssr.cpp
deleted file mode 100644
index 5dc959aa1c..0000000000
--- a/stepmania/src/crypto51/pssr.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// pssr.cpp - written and placed in the public domain by Wei Dai
-
-#include "pch.h"
-#include "pssr.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-template<> const byte EMSA2HashId::id = 0x33;
-template<> const byte EMSA2HashId::id = 0x31;
-
-unsigned int PSSR_MEM_Base::MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const
-{
- if (AllowRecovery())
- {
- unsigned int saltLen = SaltLen(digestLength);
- unsigned int minPadLen = MinPadLen(digestLength);
- return SaturatingSubtract(representativeBitLength, 8*(minPadLen + saltLen + digestLength + hashIdentifierLength) + 9) / 8;
- }
- return 0;
-}
-
-bool PSSR_MEM_Base::IsProbabilistic() const
-{
- return SaltLen(1) > 0;
-}
-
-bool PSSR_MEM_Base::AllowNonrecoverablePart() const
-{
- return true;
-}
-
-bool PSSR_MEM_Base::RecoverablePartFirst() const
-{
- return false;
-}
-
-void PSSR_MEM_Base::ComputeMessageRepresentative(RandomNumberGenerator &rng,
- const byte *recoverableMessage, unsigned int recoverableMessageLength,
- HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty,
- byte *representative, unsigned int representativeBitLength) const
-{
- const unsigned int u = hashIdentifier.second + 1;
- const unsigned int representativeByteLength = BitsToBytes(representativeBitLength);
- const unsigned int digestSize = hash.DigestSize();
- const unsigned int saltSize = SaltLen(digestSize);
- byte *const h = representative + representativeByteLength - u - digestSize;
-
- SecByteBlock digest(digestSize), salt(saltSize);
- hash.Final(digest);
- rng.GenerateBlock(salt, saltSize);
-
- // compute H = hash of M'
- byte c[8];
- UnalignedPutWord(BIG_ENDIAN_ORDER, c, (word32)SafeRightShift<29>(recoverableMessageLength));
- UnalignedPutWord(BIG_ENDIAN_ORDER, c+4, word32(recoverableMessageLength << 3));
- hash.Update(c, 8);
- hash.Update(recoverableMessage, recoverableMessageLength);
- hash.Update(digest, digestSize);
- hash.Update(salt, saltSize);
- hash.Final(h);
-
- // compute representative
- GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize, false);
- byte *xorStart = representative + representativeByteLength - u - digestSize - salt.size() - recoverableMessageLength - 1;
- xorStart[0] ^= 1;
- xorbuf(xorStart + 1, recoverableMessage, recoverableMessageLength);
- xorbuf(xorStart + 1 + recoverableMessageLength, salt, salt.size());
- memcpy(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second);
- representative[representativeByteLength - 1] = hashIdentifier.second ? 0xcc : 0xbc;
- if (representativeBitLength % 8 != 0)
- representative[0] = (byte)Crop(representative[0], representativeBitLength % 8);
-}
-
-DecodingResult PSSR_MEM_Base::RecoverMessageFromRepresentative(
- HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty,
- byte *representative, unsigned int representativeBitLength,
- byte *recoverableMessage) const
-{
- const unsigned int u = hashIdentifier.second + 1;
- const unsigned int representativeByteLength = BitsToBytes(representativeBitLength);
- const unsigned int digestSize = hash.DigestSize();
- const unsigned int saltSize = SaltLen(digestSize);
- const byte *const h = representative + representativeByteLength - u - digestSize;
-
- SecByteBlock digest(digestSize);
- hash.Final(digest);
-
- DecodingResult result(0);
- bool &valid = result.isValidCoding;
- unsigned int &recoverableMessageLength = result.messageLength;
-
- valid = (representative[representativeByteLength - 1] == (hashIdentifier.second ? 0xcc : 0xbc)) && valid;
- valid = (memcmp(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second) == 0) && valid;
-
- GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize);
- if (representativeBitLength % 8 != 0)
- representative[0] = (byte)Crop(representative[0], representativeBitLength % 8);
-
- // extract salt and recoverableMessage from DB = 00 ... || 01 || M || salt
- byte *salt = representative + representativeByteLength - u - digestSize - saltSize;
- byte *M = std::find_if(representative, salt-1, std::bind2nd(std::not_equal_to(), 0));
- if (*M == 0x01 && (unsigned int)(M - representative - (representativeBitLength % 8 != 0)) >= MinPadLen(digestSize))
- {
- recoverableMessageLength = salt-M-1;
- memcpy(recoverableMessage, M+1, recoverableMessageLength);
- }
- else
- valid = false;
-
- // verify H = hash of M'
- byte c[8];
- UnalignedPutWord(BIG_ENDIAN_ORDER, c, (word32)SafeRightShift<29>(recoverableMessageLength));
- UnalignedPutWord(BIG_ENDIAN_ORDER, c+4, word32(recoverableMessageLength << 3));
- hash.Update(c, 8);
- hash.Update(recoverableMessage, recoverableMessageLength);
- hash.Update(digest, digestSize);
- hash.Update(salt, saltSize);
- valid = hash.Verify(h) && valid;
-
- if (!AllowRecovery() && valid && recoverableMessageLength != 0)
- {throw NotImplemented("PSSR_MEM: message recovery disabled");}
-
- return result;
-}
-
-NAMESPACE_END
diff --git a/stepmania/src/crypto51/pssr.h b/stepmania/src/crypto51/pssr.h
deleted file mode 100644
index 4ba2950966..0000000000
--- a/stepmania/src/crypto51/pssr.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef CRYPTOPP_PSSR_H
-#define CRYPTOPP_PSSR_H
-
-#include "pubkey.h"
-#include
-
-NAMESPACE_BEGIN(CryptoPP)
-
-class PSSR_MEM_Base : public PK_RecoverableSignatureMessageEncodingMethod
-{
- virtual bool AllowRecovery() const =0;
- virtual unsigned int SaltLen(unsigned int hashLen) const =0;
- virtual unsigned int MinPadLen(unsigned int hashLen) const =0;
- virtual const MaskGeneratingFunction & GetMGF() const =0;
-
-public:
- unsigned int MaxRecoverableLength(unsigned int representativeBitLength, unsigned int hashIdentifierLength, unsigned int digestLength) const;
- bool IsProbabilistic() const;
- bool AllowNonrecoverablePart() const;
- bool RecoverablePartFirst() const;
- void ComputeMessageRepresentative(RandomNumberGenerator &rng,
- const byte *recoverableMessage, unsigned int recoverableMessageLength,
- HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty,
- byte *representative, unsigned int representativeBitLength) const;
- DecodingResult RecoverMessageFromRepresentative(
- HashTransformation &hash, HashIdentifier hashIdentifier, bool messageEmpty,
- byte *representative, unsigned int representativeBitLength,
- byte *recoverableMessage) const;
-};
-
-template struct EMSA2HashId
-{
- static const byte id;
-};
-
-// EMSA2HashId can be instantiated with the following two classes.
-class SHA;
-class RIPEMD160;
-
-template
-class EMSA2HashIdLookup : public BASE
-{
-public:
- struct HashIdentifierLookup
- {
- template struct HashIdentifierLookup2
- {
- static HashIdentifier Lookup()
- {
- return HashIdentifier(&EMSA2HashId::id, 1);
- }
- };
- };
-};
-
-template class PSSR_MEM_BaseWithHashId;
-template<> class PSSR_MEM_BaseWithHashId : public EMSA2HashIdLookup {};
-template<> class PSSR_MEM_BaseWithHashId : public PSSR_MEM_Base {};
-
-template
-class PSSR_MEM : public PSSR_MEM_BaseWithHashId
-{
- virtual bool AllowRecovery() const {return ALLOW_RECOVERY;}
- virtual unsigned int SaltLen(unsigned int hashLen) const {return SALT_LEN < 0 ? hashLen : SALT_LEN;}
- virtual unsigned int MinPadLen(unsigned int hashLen) const {return MIN_PAD_LEN < 0 ? hashLen : MIN_PAD_LEN;}
- virtual const MaskGeneratingFunction & GetMGF() const {static MGF mgf; return mgf;}
-
-public:
- static std::string StaticAlgorithmName() {return std::string(ALLOW_RECOVERY ? "PSSR-" : "PSS-") + MGF::StaticAlgorithmName();}
-};
-
-//! PSSR-MGF1
-struct PSSR : public SignatureStandard
-{
- typedef PSSR_MEM SignatureMessageEncodingMethod;
-};
-
-//! PSS-MGF1
-struct PSS : public SignatureStandard
-{
- typedef PSSR_MEM SignatureMessageEncodingMethod;
-};
-
-NAMESPACE_END
-
-#endif