Browse Source

Merge branch 'openssl' of https://github.com/PurpleI2P/i2pd into openssl

pull/708/head
orignal 8 years ago
parent
commit
e1eaa2097e
  1. 21
      Crypto.cpp
  2. 5
      Crypto.h
  3. 20
      docs/building/windows.md
  4. 2
      docs/usage.md

21
Crypto.cpp

@ -224,7 +224,7 @@ namespace crypto
// DH // DH
DHKeys::DHKeys (): m_IsUpdated (true) DHKeys::DHKeys ()
{ {
m_DH = DH_new (); m_DH = DH_new ();
DH_set0_pqg (m_DH, BN_dup (elgp), NULL, BN_dup (elgg)); DH_set0_pqg (m_DH, BN_dup (elgp), NULL, BN_dup (elgg));
@ -236,7 +236,7 @@ namespace crypto
DH_free (m_DH); DH_free (m_DH);
} }
void DHKeys::GenerateKeys (uint8_t * priv, uint8_t * pub) void DHKeys::GenerateKeys ()
{ {
BIGNUM * priv_key = NULL, * pub_key = NULL; BIGNUM * priv_key = NULL, * pub_key = NULL;
#if !defined(__x86_64__) // use short exponent for non x64 #if !defined(__x86_64__) // use short exponent for non x64
@ -261,22 +261,7 @@ namespace crypto
DH_get0_key (m_DH, (const BIGNUM **)&pub_key, (const BIGNUM **)&priv_key); DH_get0_key (m_DH, (const BIGNUM **)&pub_key, (const BIGNUM **)&priv_key);
} }
if (priv) bn2buf (priv_key, priv, 256); bn2buf (pub_key, m_PublicKey, 256);
if (pub) bn2buf (pub_key, pub, 256);
m_IsUpdated = true;
}
const uint8_t * DHKeys::GetPublicKey ()
{
if (m_IsUpdated)
{
const BIGNUM * priv_key, * pub_key;
DH_get0_key (m_DH, &pub_key, &priv_key);
bn2buf (pub_key, m_PublicKey, 256);
DH_set0_key (m_DH, NULL, NULL);
m_IsUpdated= false;
}
return m_PublicKey;
} }
void DHKeys::Agree (const uint8_t * pub, uint8_t * shared) void DHKeys::Agree (const uint8_t * pub, uint8_t * shared)

5
Crypto.h

@ -36,15 +36,14 @@ namespace crypto
DHKeys (); DHKeys ();
~DHKeys (); ~DHKeys ();
void GenerateKeys (uint8_t * priv = nullptr, uint8_t * pub = nullptr); void GenerateKeys ();
const uint8_t * GetPublicKey (); const uint8_t * GetPublicKey () const { return m_PublicKey; };
void Agree (const uint8_t * pub, uint8_t * shared); void Agree (const uint8_t * pub, uint8_t * shared);
private: private:
DH * m_DH; DH * m_DH;
uint8_t m_PublicKey[256]; uint8_t m_PublicKey[256];
bool m_IsUpdated;
}; };
// ElGamal // ElGamal

20
docs/building/windows.md

@ -30,16 +30,16 @@ Where $ARCH is `i686` or `x86_64` (matching your system).
- Open MSYS2 Shell (from Start menu). - Open MSYS2 Shell (from Start menu).
- Install all prerequisites and download i2pd source: - Install all prerequisites and download i2pd source:
export ARCH='i686' # or 'x86_64' export ARCH='i686' # or 'x86_64'
export MINGW='mingw32' # or 'mingw64' export MINGW='mingw32' # or 'mingw64'
pacman -S mingw-w64-$ARCH-boost mingw-w64-$ARCH-openssl mingw-w64-$ARCH-gcc git make pacman -S mingw-w64-$ARCH-boost mingw-w64-$ARCH-openssl mingw-w64-$ARCH-gcc git make
mkdir -p /c/dev/i2pd mkdir -p /c/dev/i2pd
cd /c/dev/i2pd cd /c/dev/i2pd
git clone https://github.com/PurpleI2P/i2pd.git git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd cd i2pd
# we need compiler on PATH which is usually heavily cluttered on Windows # we need compiler on PATH which is usually heavily cluttered on Windows
export PATH=/$MINGW/bin:/usr/bin export PATH=/$MINGW/bin:/usr/bin
make make
### Caveats ### Caveats

2
docs/usage.md

@ -48,7 +48,7 @@ Enable/disable i2pd to be started on bootup:
## Configuring i2pd ## Configuring i2pd
See [configuration page](i2pd.readthedocs.io/page/configuration.html). See [configuration documentation](/page/configuration.html).
## Browsing and hosting websites ## Browsing and hosting websites

Loading…
Cancel
Save