diff --git a/cryptdll.vcproj b/cryptdll.vcproj
index c232bb74..86ac02fa 100755
--- a/cryptdll.vcproj
+++ b/cryptdll.vcproj
@@ -1598,48 +1598,6 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/cryptlib.vcproj b/cryptlib.vcproj
index f622f95e..714153a8 100755
--- a/cryptlib.vcproj
+++ b/cryptlib.vcproj
@@ -2959,6 +2959,7 @@
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/misc.h b/misc.h
index 0815c16d..0b166ecf 100644
--- a/misc.h
+++ b/misc.h
@@ -163,6 +163,8 @@ template inline const T& STDMAX(const T& a, const T& b)
// #define GETBYTE(x, y) (unsigned int)(((x)>>(8*(y)))&255)
// #define GETBYTE(x, y) (((byte *)&(x))[y])
+#define CRYPTOPP_GET_BYTE_AS_BYTE(x, y) byte((x)>>(8*(y)))
+
template
unsigned int Parity(T value)
{
@@ -688,13 +690,13 @@ inline void UnalignedPutWord(ByteOrder order, byte *block, word16 value, const b
{
if (order == BIG_ENDIAN_ORDER)
{
- block[0] = GETBYTE(value, 1);
- block[1] = GETBYTE(value, 0);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
}
else
{
- block[0] = GETBYTE(value, 0);
- block[1] = GETBYTE(value, 1);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
}
if (xorBlock)
@@ -708,17 +710,17 @@ inline void UnalignedPutWord(ByteOrder order, byte *block, word32 value, const b
{
if (order == BIG_ENDIAN_ORDER)
{
- block[0] = GETBYTE(value, 3);
- block[1] = GETBYTE(value, 2);
- block[2] = GETBYTE(value, 1);
- block[3] = GETBYTE(value, 0);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 3);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 2);
+ block[2] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
+ block[3] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
}
else
{
- block[0] = GETBYTE(value, 0);
- block[1] = GETBYTE(value, 1);
- block[2] = GETBYTE(value, 2);
- block[3] = GETBYTE(value, 3);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
+ block[2] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 2);
+ block[3] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 3);
}
if (xorBlock)
@@ -735,25 +737,25 @@ inline void UnalignedPutWord(ByteOrder order, byte *block, word64 value, const b
{
if (order == BIG_ENDIAN_ORDER)
{
- block[0] = GETBYTE(value, 7);
- block[1] = GETBYTE(value, 6);
- block[2] = GETBYTE(value, 5);
- block[3] = GETBYTE(value, 4);
- block[4] = GETBYTE(value, 3);
- block[5] = GETBYTE(value, 2);
- block[6] = GETBYTE(value, 1);
- block[7] = GETBYTE(value, 0);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 7);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 6);
+ block[2] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 5);
+ block[3] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 4);
+ block[4] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 3);
+ block[5] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 2);
+ block[6] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
+ block[7] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
}
else
{
- block[0] = GETBYTE(value, 0);
- block[1] = GETBYTE(value, 1);
- block[2] = GETBYTE(value, 2);
- block[3] = GETBYTE(value, 3);
- block[4] = GETBYTE(value, 4);
- block[5] = GETBYTE(value, 5);
- block[6] = GETBYTE(value, 6);
- block[7] = GETBYTE(value, 7);
+ block[0] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 0);
+ block[1] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 1);
+ block[2] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 2);
+ block[3] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 3);
+ block[4] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 4);
+ block[5] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 5);
+ block[6] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 6);
+ block[7] = CRYPTOPP_GET_BYTE_AS_BYTE(value, 7);
}
if (xorBlock)
diff --git a/modexppc.cpp b/modexppc.cpp
deleted file mode 100644
index bea2931a..00000000
--- a/modexppc.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// modexppc.cpp - written and placed in the public domain by Wei Dai
-
-#include "pch.h"
-
-#ifndef CRYPTOPP_IMPORTS
-
-#include "modexppc.h"
-#include "asn.h"
-
-NAMESPACE_BEGIN(CryptoPP)
-
-/*
-ModExpPrecomputation& ModExpPrecomputation::operator=(const ModExpPrecomputation &rhs)
-{
- m_base = rhs.m_base;
- m_mr = rhs.m_mr;
- m_ep = rhs.m_ep;
- if (m_mr.get() != NULL)
- m_ep.m_group = &m_mr->MultiplicativeGroup();
- return *this;
-}
-
-void ModExpPrecomputation::SetModulusAndBase(const Integer &modulus, const Integer &base)
-{
- m_base = base;
- if (m_mr.get() == NULL || modulus != m_mr->GetModulus())
- m_mr.reset(new MontgomeryRepresentation(modulus));
- m_ep.SetGroupAndBase(m_mr->MultiplicativeGroup(), m_mr->ConvertIn(base));
-}
-
-void ModExpPrecomputation::SetBase(const Integer &base)
-{
- m_base = base;
- m_ep.SetGroupAndBase(m_mr->MultiplicativeGroup(), m_mr->ConvertIn(base));
-}
-
-void ModExpPrecomputation::Precompute(unsigned int maxExpBits, unsigned int storage)
-{
- m_ep.Precompute(maxExpBits, storage);
-}
-
-void ModExpPrecomputation::Load(BufferedTransformation &bt)
-{
- BERSequenceDecoder seq(bt);
- word32 version;
- BERDecodeUnsigned(seq, version, INTEGER, 1, 1);
- m_ep.m_exponentBase.BERDecode(seq);
- m_ep.m_windowSize = m_ep.m_exponentBase.BitCount() - 1;
- m_ep.m_bases.clear();
- while (!seq.EndReached())
- m_ep.m_bases.push_back(Integer(seq));
- if (!m_ep.m_bases.empty())
- m_base = m_mr->ConvertOut(m_ep.m_bases[0]);
- seq.MessageEnd();
-}
-
-void ModExpPrecomputation::Save(BufferedTransformation &bt) const
-{
- DERSequenceEncoder seq(bt);
- DEREncodeUnsigned(seq, 1); // version
- m_ep.m_exponentBase.DEREncode(seq);
- for (unsigned i=0; iConvertOut(m_ep.Exponentiate(exponent));
-}
-
-Integer ModExpPrecomputation::CascadeExponentiate(const Integer &exponent, const DL_FixedBasePrecomputation &pc2, const Integer &exponent2) const
-{
- return m_mr->ConvertOut(m_ep.CascadeExponentiate(exponent, static_cast(pc2).m_ep, exponent2));
-}
-*/
-
-NAMESPACE_END
-
-#endif