aboutsummaryrefslogtreecommitdiff
path: root/src/crypto.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto.hh')
-rw-r--r--src/crypto.hh38
1 files changed, 3 insertions, 35 deletions
diff --git a/src/crypto.hh b/src/crypto.hh
index 7159a37..b649ad8 100644
--- a/src/crypto.hh
+++ b/src/crypto.hh
@@ -2,52 +2,20 @@
#define TIBIA_CRYPTO_HH_ 1
#include "common.hh"
-
-// TODO(fusion): We might want to scrap this implementation and use OpenSSL instead.
-
-struct vlong_flex_unit{
- uint32 n;
- uint32 *a;
- uint32 z;
-};
-
-struct vlong_value: vlong_flex_unit {
- uint32 share;
-};
-
-struct vlong{
- vlong_value *value;
- int negative;
-};
-
-struct vlong_montgomery{
- vlong R;
- vlong R1;
- vlong m;
- vlong n1;
- vlong T;
- vlong k;
- uint32 N;
-};
+#include <openssl/rsa.h>
struct TRSAPrivateKey{
TRSAPrivateKey(void);
~TRSAPrivateKey(void);
- void init(const char *PrimeP, const char *PrimeQ);
+ void initFromFile(const char *FileName);
void decrypt(uint8 *Data); // single 128 bytes block
// DATA
// =================
- vlong m_PrimeP;
- vlong m_PrimeQ;
- vlong m_U;
- vlong m_DP;
- vlong m_DQ;
+ RSA *m_RSA;
};
struct TXTEASymmetricKey{
- TXTEASymmetricKey(void);
- ~TXTEASymmetricKey(void);
void init(TReadBuffer *Buffer);
void encrypt(uint8 *Data); // single 8 bytes block
void decrypt(uint8 *Data); // single 8 bytes block