<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/pycrypto.git/lib/Crypto/PublicKey, branch master</title>
<subtitle>github.com: dlitz/pycrypto.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/'/>
<entry>
<title>Increase attempts for recovering RSA (p,q) from (n,e,d)</title>
<updated>2014-06-23T07:12:24+00:00</updated>
<author>
<name>Wouter Bolsterlee</name>
<email>uws@xs4all.nl</email>
</author>
<published>2014-06-20T20:07:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=7acba5f3a6ff10f1424c309d0d34d2b713233019'/>
<id>7acba5f3a6ff10f1424c309d0d34d2b713233019</id>
<content type='text'>
Bump the maximum number of iterations to recover (p,q) given (n,e,d) to
increase the chance that the algorithm succeeds. The algorithm used is a
probabilistic one with a 1/2 chance of finding the right value in each
iteration, so it's likely that only a few iterations are needed.

However, in some extreme cases this may still fail. Bumping the maximum
number allow the algorithm to correctly find the right values for these
cases. This changes bumps the number of iterations from 50 to 500 (the
value 'a' is increased by 2 in each step), and hence reduces the chance
of failure from 2**-50 to 2**-500.

Note that this change does *not* result in a performance degradation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bump the maximum number of iterations to recover (p,q) given (n,e,d) to
increase the chance that the algorithm succeeds. The algorithm used is a
probabilistic one with a 1/2 chance of finding the right value in each
iteration, so it's likely that only a few iterations are needed.

However, in some extreme cases this may still fail. Bumping the maximum
number allow the algorithm to correctly find the right values for these
cases. This changes bumps the number of iterations from 50 to 500 (the
value 'a' is increased by 2 in each step), and hence reduces the chance
of failure from 2**-50 to 2**-500.

Note that this change does *not* result in a performance degradation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add side-channel countermeasures to DSA.</title>
<updated>2014-06-23T06:30:26+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2013-12-27T22:44:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=0782d68840d0ebf850516e606e398b8a5396eb64'/>
<id>0782d68840d0ebf850516e606e398b8a5396eb64</id>
<content type='text'>
This patch strenghten the DSA signing code against
side-channel attacks.

The DSA signing formulae:

r = (g^{k} mod p) mod q
s = k^{-1} * (H(m) + r*x) mod q

becomes:

b = random in [1..q)
r = (g^{k} mod p) mod q
s = (b * k)^{-1} * (b*H(m) + r*(b*x)) mod q

In this way we avoid that the secret (x) gets multiplied
by a random factor (r) which is immediately disclosed
to an attacker (which we assume can both collect (r) and
also monitor the side-channel produced by the multiplication).

See also attack DSA_2 in:

"Minimum Requirements for Evaluating Side-Channel Attack Resistance
of RSA, DSA and Diffie-Hellman Key Exchange Implementations", BSI
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch strenghten the DSA signing code against
side-channel attacks.

The DSA signing formulae:

r = (g^{k} mod p) mod q
s = k^{-1} * (H(m) + r*x) mod q

becomes:

b = random in [1..q)
r = (g^{k} mod p) mod q
s = (b * k)^{-1} * (b*H(m) + r*(b*x)) mod q

In this way we avoid that the secret (x) gets multiplied
by a random factor (r) which is immediately disclosed
to an attacker (which we assume can both collect (r) and
also monitor the side-channel produced by the multiplication).

See also attack DSA_2 in:

"Minimum Requirements for Evaluating Side-Channel Attack Resistance
of RSA, DSA and Diffie-Hellman Key Exchange Implementations", BSI
</pre>
</div>
</content>
</entry>
<entry>
<title>Extended fix for the RSA boundary check</title>
<updated>2014-06-23T04:28:37+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2014-05-07T10:20:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=f49fd0e1b57071e52200806d095679753fe36e17'/>
<id>f49fd0e1b57071e52200806d095679753fe36e17</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove a few custom exception types.</title>
<updated>2014-06-23T03:42:00+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2014-03-04T21:04:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=629c26c21857f205b08211d7b1333eb5580c525d'/>
<id>629c26c21857f205b08211d7b1333eb5580c525d</id>
<content type='text'>
The following custom exceptions are replaced with ValueError:
* Crypto.Util.PaddingError
* Crypto.PublicKey.KeyFormatError

The custom Crypto.Util.asn1.NoDerElementError is now private to the
module.

Some white spaces have been removed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following custom exceptions are replaced with ValueError:
* Crypto.Util.PaddingError
* Crypto.PublicKey.KeyFormatError

The custom Crypto.Util.asn1.NoDerElementError is now private to the
module.

Some white spaces have been removed.
</pre>
</div>
</content>
</entry>
<entry>
<title>FIX #1191411: RSA export example</title>
<updated>2013-07-15T06:08:47+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2013-06-16T09:47:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=f9a0fc77e1c8847c1a17503e5a1b86a409b8cb2d'/>
<id>f9a0fc77e1c8847c1a17503e5a1b86a409b8cb2d</id>
<content type='text'>
Closes: https://bugs.launchpad.net/pycrypto/+bug/1191411
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes: https://bugs.launchpad.net/pycrypto/+bug/1191411
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for import/export of DSA keys</title>
<updated>2013-07-15T04:16:46+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2013-07-01T20:30:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=791cfaa255b002a65a57bb29a1f3b8ea23e132b8'/>
<id>791cfaa255b002a65a57bb29a1f3b8ea23e132b8</id>
<content type='text'>
This patch adds methods importKey() to DSA module
and exportKey() to _DSAobj object.

Public and private keys can be imported/exported
in a variety of formats:

* DER vs PEM
* PKCS#8 vs OpenSSL vs OpenSSH/OpenSSL
* Encrypted vs clear
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds methods importKey() to DSA module
and exportKey() to _DSAobj object.

Public and private keys can be imported/exported
in a variety of formats:

* DER vs PEM
* PKCS#8 vs OpenSSL vs OpenSSH/OpenSSL
* Encrypted vs clear
</pre>
</div>
</content>
</entry>
<entry>
<title>Added support for PKCS#8-encrypted private keys.</title>
<updated>2013-07-15T04:16:46+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2013-06-15T21:25:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=90d6d3dbcfb02fc441edafe6fafe6e6800009e35'/>
<id>90d6d3dbcfb02fc441edafe6fafe6e6800009e35</id>
<content type='text'>
The patch contains the following changes:

- Private RSA keys can be imported/exported in encrypted form,
  protected according to PKCS#8 and:

  * PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC.
  * PBKDF2WithHMAC-SHA1AndAES128-CBC
  * PBKDF2WithHMAC-SHA1AndAES192-CBC
  * PBKDF2WithHMAC-SHA1AndAES256-CBC

  In addition to that, it is possible to import keys i the
  following weak formats:

  * pbeWithMD5AndDES-CBC
  * pbeWithSHA1AndRC2-CBC
  * pbeWithMD5AndRC2-CBC
  * pbeWithSHA1AndDES-CBC

- The following new module (and 1 new package) are added:

  * Crypto.Util.Padding for simple padding/unpadding logic
  * Crypto.IO._PBES for PBE-related PKCS#5 logic
  * Crypto.IO.PEM for PEM wrapping/unwrapping
  * Crypto.IO.PKCS8 for PKCS#8 wrapping/unwrapping

- All Object ID (OIDs) are now in dotted form to increase
  readability.

- Add AES support to PEM format (decode only).
  The PEM module can decrypt messages protected with AES-CBC.

- Update RSA import test cases.

- Updated to PKCS8 test cases
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The patch contains the following changes:

- Private RSA keys can be imported/exported in encrypted form,
  protected according to PKCS#8 and:

  * PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC.
  * PBKDF2WithHMAC-SHA1AndAES128-CBC
  * PBKDF2WithHMAC-SHA1AndAES192-CBC
  * PBKDF2WithHMAC-SHA1AndAES256-CBC

  In addition to that, it is possible to import keys i the
  following weak formats:

  * pbeWithMD5AndDES-CBC
  * pbeWithSHA1AndRC2-CBC
  * pbeWithMD5AndRC2-CBC
  * pbeWithSHA1AndDES-CBC

- The following new module (and 1 new package) are added:

  * Crypto.Util.Padding for simple padding/unpadding logic
  * Crypto.IO._PBES for PBE-related PKCS#5 logic
  * Crypto.IO.PEM for PEM wrapping/unwrapping
  * Crypto.IO.PKCS8 for PKCS#8 wrapping/unwrapping

- All Object ID (OIDs) are now in dotted form to increase
  readability.

- Add AES support to PEM format (decode only).
  The PEM module can decrypt messages protected with AES-CBC.

- Update RSA import test cases.

- Updated to PKCS8 test cases
</pre>
</div>
</content>
</entry>
<entry>
<title>Add blinding to ElGamal decryption.</title>
<updated>2013-04-22T02:29:27+00:00</updated>
<author>
<name>Legrandin</name>
<email>helderijs@gmail.com</email>
</author>
<published>2012-11-11T22:16:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=ce92486a1d8a4abbff2d40b2be737ca09dd98c6a'/>
<id>ce92486a1d8a4abbff2d40b2be737ca09dd98c6a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Hash: Rename SHA-&gt;SHA1 and RIPEMD-&gt;RIPEMD160 (1/2)</title>
<updated>2013-02-17T00:20:23+00:00</updated>
<author>
<name>Dwayne Litzenberger</name>
<email>dlitz@dlitz.net</email>
</author>
<published>2013-02-17T00:06:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=755375bb7d866a01e19153f5809772f4474eb94d'/>
<id>755375bb7d866a01e19153f5809772f4474eb94d</id>
<content type='text'>
These algorithm names were confusing, because there are actually
algorithms called "SHA" (a.k.a. SHA-0) and "RIPEMD" (the original
version).

This commit just renames the modules, with no backward-compatibility
support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These algorithm names were confusing, because there are actually
algorithms called "SHA" (a.k.a. SHA-0) and "RIPEMD" (the original
version).

This commit just renames the modules, with no backward-compatibility
support.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix RSA object serialization</title>
<updated>2013-02-16T19:14:09+00:00</updated>
<author>
<name>Frank Sievertsen</name>
<email>packaging@fx5.de</email>
</author>
<published>2012-11-19T07:21:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/pycrypto.git/commit/?id=db52ac71e804e85ace3edd772d2e78055972ac2c'/>
<id>db52ac71e804e85ace3edd772d2e78055972ac2c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
