mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47:17 +02:00
Updated RaknetLib.lib to version 3.4
Added all raknet headers for full raknet support Added Testclass "TestCB.cpp" which is a test implementation for raknet plugin "File List Transfer". We will use this plugin for file transfer in multiplayer git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2638 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#ifndef RSA_CRYPT_HPP
|
||||
#define RSA_CRYPT_HPP
|
||||
|
||||
#include "Platform.h"
|
||||
#include "Export.h"
|
||||
|
||||
bool primeTest(const uint32_t *n, int limbs, uint32_t k);
|
||||
void generateStrongPseudoPrime(uint32_t *n, int limbs);
|
||||
|
||||
class RAK_DLL_EXPORT RSACrypt
|
||||
{
|
||||
uint32_t *p, p_inv, *q, q_inv, *pinvq, factor_limbs;
|
||||
uint32_t *d, e;
|
||||
uint32_t *modulus, mod_inv, mod_limbs;
|
||||
|
||||
void cleanup();
|
||||
|
||||
bool generateExponents(const uint32_t *p, const uint32_t *q, int limbs, uint32_t &e, uint32_t *d);
|
||||
|
||||
public:
|
||||
RSACrypt();
|
||||
~RSACrypt();
|
||||
|
||||
public:
|
||||
bool setPrivateKey(const uint32_t *p, const uint32_t *q, int halfFactorLimbs);
|
||||
bool setPublicKey(const uint32_t *modulus, int mod_limbs, uint32_t e);
|
||||
|
||||
public:
|
||||
// Bitsize is limbs * 32
|
||||
// Private key size is limbs/2 words
|
||||
bool generatePrivateKey(uint32_t limbs); // limbs must be a multiple of 2
|
||||
|
||||
public:
|
||||
uint32_t getFactorLimbs();
|
||||
void getPrivateP(uint32_t *p); // p buffer has factor_limbs
|
||||
void getPrivateQ(uint32_t *q); // q buffer has factor_limbs
|
||||
|
||||
uint32_t getModLimbs();
|
||||
void getPublicModulus(uint32_t *modulus); // modulus buffer has mod_limbs
|
||||
uint32_t getPublicExponent();
|
||||
|
||||
public:
|
||||
bool encrypt(uint32_t *ct, const uint32_t *pt); // pt limbs = mod_limbs
|
||||
bool decrypt(uint32_t *pt, const uint32_t *ct); // ct limbs = mod_limbs
|
||||
};
|
||||
|
||||
#endif // RSA_CRYPT_HPP
|
||||
Reference in New Issue
Block a user