Git Product home page Git Product logo

pycryptodome's People

Contributors

4zm avatar akuchling avatar alexanderup avatar arunanshub avatar bobotig avatar cclauss avatar credentiality avatar dlitz avatar donlorenzo avatar frispete avatar fviard avatar gwerbin avatar henryhjung avatar hugovk avatar jamestheawesomedude avatar jelaiw avatar legrandin avatar mchlnix avatar mitchellrj avatar msabramo avatar msfschaffner avatar oittaa avatar pgp avatar roughconsensusandrunningcode avatar sebastinas avatar stefanor avatar thorsteneb avatar tintinweb avatar varbin avatar xambroz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pycryptodome's Issues

Installation documentation for Windows Precompiled is wrong and confusing

The installation information page of PyCryptodome says the following under the "Windows (pre-compiled)" section:

  1. Install PyCryptodome as a wheel:

pip install pycryptodomex

  1. To make sure everything works fine, run the test suite:

python -m Cryptodome.SelfTest

There are several problems with this though:

  1. Contrary to what these instructions say, this will not install PyCryptoDome as a wheel, but it will rather download it and try to build it, resulting in an error if you don't have the correct build environment installed for the C components included in this package (and the entire mess related to this is the biggest benefit of using a wheel instead to begin with).
  2. Even if I instead download the correct wheel file from PyCryptoDome's PyPi page, I must (as far as I know?) instead use a command-line as follows to install it:

pip install c:\some\path\name-of-wheel-file.whl

This in turn makes it install under the default "Crypto" package instead of the "Cryptodome" package explicitly mentioned in the instructions (and therefore colliding in a breaking fashion with any pre-existing installations of the PyCrypto package).

For more details, please see the following StackOverflow question:

http://stackoverflow.com/questions/37504622/how-to-install-a-python-wheel-under-an-alternative-package-name-in-my-specific

Therefore, I suggest that:

  1. The docs be updated to reflect reality.
  2. Wheel files be created for both the "Cryptodome" and the "Crypto" package names, so that also Windows users without build environments can choose which to use.

Python27: ChaCha20.new() takes exactly 0 arguments

So I am following example like in the documentation/help:

from Crypto.Cipher import ChaCha20

key = b'*Thirty-two byte (256 bits) key*'
cipher = ChaCha20.new(key)
msg = cipher.nonce + cipher.encrypt(b'Attack at dawn')

and it returned:
TypeError: new() takes exactly 0 arguments (1 given)

Solution:
cipher = ChaCha20.new(key) should be changed to cipher = ChaCha20.new(key = key)

Cipher operations should accept any type that supports buffer protocol

In Python 3, if I ask for a cipher operation -- like encrypt () -- I get an error if the argument is not an instance of "bytes". That is overly restrictive; it should accept anything that obeys the buffer protocol. In particular, "bytearray" and "memoryview" types should be permitted.

Documentation falsely says AES.new function ignores IV parameter

The documentation for the Crypto.Cipher.AES module says that the IV parameter is ignored by the AES.new function for MODE_ECB and MODE_CTR. That sounds very believable, since that is how PyCrypto behaves.

PyCryptodome behaves differently. If I try running AES.new(b"\x00"*16, AES.MODE_ECB, b"\x00"*16), I get a TypeError that says IV is not meaningful for the ECB mode. For AES.new(b"\x00"*16, AES.MODE_CTR, b"\x00"*16), it says Too many arguments for this mode.

I think the documentation should be updated to reflect this. I am trying to port a project from PyCrypto to PyCryptodome, and some things broke because the IV is not being silently ignored for ECB mode like it used to be. I tried to fix it myself, but I have been unable to figure out where in this repo (or elsewhere) that part of the documentation is.

pycryptodomex attempts to utilize MD5 on FIPS enabled machines, throws errors

Using pycryptodomex on FIPS enabled Redhat 6 & 7 systems is throwing ValueError or other UnboundedLocallError due to the use of MD5 which is now disabled on FIPS enabled systems.

see:
saltstack/salt#40890
vmware-archive/salt-pack#261

The problem is use of the pattern:
try:
from hashlib import md5
except ImportError:
from md5 import md5

But on FIPS enabled systems MD5 is disabled.

Note this pattern is used in other Python files too, as shown in the comments of the salt-pack issue.

Note the UnboundedLocalError in yacc.py due to MD5 instantiation failing generated by use of :
File "/usr/lib64/python2.7/site-packages/Cryptodome/Util/_raw_api.py", line 89, in

results in MD5 instantiation failing

Crypto.Hash.keccak can't update() after calling digest()

According to the the hashlib interface it should be possible to do the following:

import hashlib
s = hashlib.sha256()
s.update("foo")
s.digest()
s.update("bar")
s.digest()

This is however not possible with this library, but it would be very nice if it was.
Trying the same with pycryptodome fails like this:

from Crypto.Hash import keccak
kh = keccak.new(digest_bits=256)
kh.update("foo")
kh.update("bar")
kh.digest()
kh.update("baz")

Gives this TypeError:

File "/home/czepluch/.virtualenvs/tmp-dab852443eeadef/site-packages/pycryptodome-3.3-py2.7-linux-x86_64.egg/Crypto/Hash/keccak.py", line 111, in update
raise TypeError("You can only call 'digest' or 'hexdigest' on this object")
TypeError: You can only call 'digest' or 'hexdigest' on this object

Shouldn't pycryptodome follow the same interface as hashlib?

TypeError: Only byte strings can be passed to C code

Hey! I'm not strong in python, trying to run project on windows (on linux it was ok), but have problems with crypto library, I installed pycryptodome and got this error. Any way to fix it?

C:\Users\ext>python3 C:\Users\ext\Desktop\pc\lib\gui.py
Traceback (most recent call last):
  File "C:\Users\ext\Desktop\pc\lib\gui.py", line 201, in <module>
    main()
  File "C:\Users\ext\Desktop\pc\lib\gui.py", line 195, in main
    app = PyCoin(root)
  File "C:\Users\ext\Desktop\pc\lib\gui.py", line 33, in __init__
    self.initApp()
  File "C:\Users\ext\Desktop\pc\lib\gui.py", line 49, in initApp
    c = CoinBase(owner=KeyStore.getPrivateKey(), amt=100)
  File "C:\Users\ext\Desktop\pc\lib\TransactionManager\coinbase.py", line 37, in
 __init__
    self.add_output(out)
  File "C:\Users\ext\Desktop\pc\lib\TransactionManager\coinbase.py", line 58, in
 add_output
    output.transaction = self.hash_transaction()
  File "C:\Users\ext\Desktop\pc\lib\TransactionManager\transaction.py", line 123
, in hash_transaction
    self.hash.update(self.pack())
  File "E:\py3\lib\site-packages\Crypto\Hash\SHA256.py", line 96, in update
    expect_byte_string(data)
  File "E:\py3\lib\site-packages\Crypto\Util\_raw_api.py", line 172, in expect_b
yte_string
    raise TypeError("Only byte strings can be passed to C code")
TypeError: Only byte strings can be passed to C code

Deprecation warning python 3.5

hi,

i get this on python3.5

C:\msys64\mingw32\lib\python3.5\site-packages\Crypto\Util\_raw_api.py:31: PendingDeprecationWarning: the imp module is deprecated in favour of importlib;
see the module's documentation for alternative uses

Not able to replace pycrypto as a drop in ...

I think this is related to #15.

I have the following code in my application which works with pycrypto:

    chiper = AES.new(dig, mode=AES.MODE_ECB, IV=iv)

The same line raises an Exception with pycryptodome:

TypeError("Unknown parameters for ECB: {'IV': b'%\\x92\\x9ci:u\\xdc\\x83\\x0eNh\\xe9\\x9c\\xb1<Z'}",)

Release 3.4 on PyPI missing cp27-none-*.whl

This causes pip install to compile it from the .tar.gz, and then either failing if you don't have a proper development environment set up, or compile with missing features (as f.ex. fast math).

Cannot compile pycryptodome on Linux Mint 18

Hello,
When installing pycryptodome on Mint 18 with pip3, it seems that dependancies are missing:

Skipping optional fixer: buffer Skipping optional fixer: idioms Skipping optional fixer: set_literal Skipping optional fixer: ws_comma running build_ext warning: no support for Intel AESNI instructions building 'Crypto.Hash._MD2' extension creating build/temp.linux-x86_64-3.5 creating build/temp.linux-x86_64-3.5/src x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python3.5m -c src/MD2.c -o build/temp.linux-x86_64-3.5/src/MD2.o In file included from src/pycrypto_common.h:46:0, from src/MD2.c:28: /usr/lib/gcc/x86_64-linux-gnu/5/include/stdint.h:9:26: fatal error: stdint.h: Aucun fichier ou dossier de ce type compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fkbn3483/pycryptodome/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-3tn2_4ub-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-fkbn3483/pycryptodome/`

Should I install another lib on my Linux system ? Thank you.

Problems compiling on Windows / Mingw / Python 3.5

Hi,

i use MSYS2 and with python 3.5 i cant install cryptodome

# pip3 install pycryptodome --no-binary :all:
Collecting pycryptodome
  Using cached pycryptodome-3.4.3.tar.gz
Installing collected packages: pycryptodome
  Running setup.py install for pycryptodome: started
    Running setup.py install for pycryptodome: finished with status 'error'
    Complete output from command C:/msys64/mingw32/bin/python3.exe -u -c "import setuptools, t                                       okenize;__file__='C:/msys64/tmp/pip-build-itqycp94/pycryptodome/setup.py';f=getattr(tokenize,                                        'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __fil                                       e__, 'exec'))" install --record C:/msys64/tmp/pip-n0yfjkru-record/install-record.txt --single-                                       version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.mingw-3.5
    creating build/lib.mingw-3.5/Crypto
    copying lib/Crypto/__init__.py -> build/lib.mingw-3.5/Crypto
    creating build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/AES.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/ARC2.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/ARC4.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/Blowfish.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/CAST.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/ChaCha20.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/DES.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/DES3.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/Salsa20.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_cbc.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_ccm.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_cfb.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_ctr.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_eax.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_ecb.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_gcm.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_ocb.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_ofb.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_openpgp.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/_mode_siv.py -> build/lib.mingw-3.5/Crypto/Cipher
    copying lib/Crypto/Cipher/__init__.py -> build/lib.mingw-3.5/Crypto/Cipher
    creating build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/BLAKE2b.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/BLAKE2s.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/CMAC.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/HMAC.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/keccak.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/MD2.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/MD4.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/MD5.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/RIPEMD.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/RIPEMD160.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA1.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA224.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA256.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA384.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA3_224.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA3_256.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA3_384.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA3_512.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHA512.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHAKE128.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/SHAKE256.py -> build/lib.mingw-3.5/Crypto/Hash
    copying lib/Crypto/Hash/__init__.py -> build/lib.mingw-3.5/Crypto/Hash
    creating build/lib.mingw-3.5/Crypto/IO
    copying lib/Crypto/IO/PEM.py -> build/lib.mingw-3.5/Crypto/IO
    copying lib/Crypto/IO/PKCS8.py -> build/lib.mingw-3.5/Crypto/IO
    copying lib/Crypto/IO/_PBES.py -> build/lib.mingw-3.5/Crypto/IO
    copying lib/Crypto/IO/__init__.py -> build/lib.mingw-3.5/Crypto/IO
    creating build/lib.mingw-3.5/Crypto/PublicKey
    copying lib/Crypto/PublicKey/DSA.py -> build/lib.mingw-3.5/Crypto/PublicKey
    copying lib/Crypto/PublicKey/ECC.py -> build/lib.mingw-3.5/Crypto/PublicKey
    copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.mingw-3.5/Crypto/PublicKey
    copying lib/Crypto/PublicKey/RSA.py -> build/lib.mingw-3.5/Crypto/PublicKey
    copying lib/Crypto/PublicKey/__init__.py -> build/lib.mingw-3.5/Crypto/PublicKey
    creating build/lib.mingw-3.5/Crypto/Protocol
    copying lib/Crypto/Protocol/KDF.py -> build/lib.mingw-3.5/Crypto/Protocol
    copying lib/Crypto/Protocol/SecretSharing.py -> build/lib.mingw-3.5/Crypto/Protocol
    copying lib/Crypto/Protocol/__init__.py -> build/lib.mingw-3.5/Crypto/Protocol
    creating build/lib.mingw-3.5/Crypto/Random
    copying lib/Crypto/Random/random.py -> build/lib.mingw-3.5/Crypto/Random
    copying lib/Crypto/Random/__init__.py -> build/lib.mingw-3.5/Crypto/Random
    creating build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/DSS.py -> build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/pkcs1_15.py -> build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/pss.py -> build/lib.mingw-3.5/Crypto/Signature
    copying lib/Crypto/Signature/__init__.py -> build/lib.mingw-3.5/Crypto/Signature
    creating build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/asn1.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/Counter.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/number.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/Padding.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/py3compat.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/RFC1751.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/strxor.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/_file_system.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/_number_new.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/_raw_api.py -> build/lib.mingw-3.5/Crypto/Util
    copying lib/Crypto/Util/__init__.py -> build/lib.mingw-3.5/Crypto/Util
    creating build/lib.mingw-3.5/Crypto/Math
    copying lib/Crypto/Math/Numbers.py -> build/lib.mingw-3.5/Crypto/Math
    copying lib/Crypto/Math/Primality.py -> build/lib.mingw-3.5/Crypto/Math
    copying lib/Crypto/Math/_Numbers_gmp.py -> build/lib.mingw-3.5/Crypto/Math
    copying lib/Crypto/Math/_Numbers_int.py -> build/lib.mingw-3.5/Crypto/Math
    copying lib/Crypto/Math/__init__.py -> build/lib.mingw-3.5/Crypto/Math
    creating build/lib.mingw-3.5/Crypto/SelfTest
    copying lib/Crypto/SelfTest/loader.py -> build/lib.mingw-3.5/Crypto/SelfTest
    copying lib/Crypto/SelfTest/st_common.py -> build/lib.mingw-3.5/Crypto/SelfTest
    copying lib/Crypto/SelfTest/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest
    copying lib/Crypto/SelfTest/__main__.py -> build/lib.mingw-3.5/Crypto/SelfTest
    creating build/lib.mingw-3.5/Crypto/SelfTest/Cipher
    copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.mingw-3.5/Crypto/SelfTest/Cipher
    copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.mingw-3.5/Crypto/SelfTest/Cip                                       her
    copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.mingw-3.5/Crypto/SelfTest/Cip                                       her
    copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.mingw-3.5/Crypto/SelfTest                                       /Cipher
    copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.mingw-3.5/Crypto/SelfTest/Cip                                       her
    copying lib/Crypto/SelfTest/Cipher/test_CBC.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_CCM.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_CFB.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_ChaCha20.py -> build/lib.mingw-3.5/Crypto/SelfTest                                       /Cipher
    copying lib/Crypto/SelfTest/Cipher/test_CTR.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.mingw-3.5/Crypto/SelfTest/Cip                                       her
    copying lib/Crypto/SelfTest/Cipher/test_EAX.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_GCM.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_OCB.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_OFB.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/test_OpenPGP.py -> build/lib.mingw-3.5/Crypto/SelfTest/                                       Cipher
    copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.mingw-3.5/Crypto/SelfTest                                       /Cipher
    copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.mingw-3.5/Crypto/SelfTe                                       st/Cipher
    copying lib/Crypto/SelfTest/Cipher/test_Salsa20.py -> build/lib.mingw-3.5/Crypto/SelfTest/                                       Cipher
    copying lib/Crypto/SelfTest/Cipher/test_SIV.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    copying lib/Crypto/SelfTest/Cipher/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ciph                                       er
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_BLAKE2.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_CMAC.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_keccak.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_RIPEMD160.py -> build/lib.mingw-3.5/Crypto/SelfTest/                                       Hash
    copying lib/Crypto/SelfTest/Hash/test_SHA1.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_SHA3_224.py -> build/lib.mingw-3.5/Crypto/SelfTest/H                                       ash
    copying lib/Crypto/SelfTest/Hash/test_SHA3_256.py -> build/lib.mingw-3.5/Crypto/SelfTest/H                                       ash
    copying lib/Crypto/SelfTest/Hash/test_SHA3_384.py -> build/lib.mingw-3.5/Crypto/SelfTest/H                                       ash
    copying lib/Crypto/SelfTest/Hash/test_SHA3_512.py -> build/lib.mingw-3.5/Crypto/SelfTest/H                                       ash
    copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.mingw-3.5/Crypto/SelfTest/Has                                       h
    copying lib/Crypto/SelfTest/Hash/test_SHAKE.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    copying lib/Crypto/SelfTest/Hash/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Hash
    creating build/lib.mingw-3.5/Crypto/SelfTest/IO
    copying lib/Crypto/SelfTest/IO/test_PBES.py -> build/lib.mingw-3.5/Crypto/SelfTest/IO
    copying lib/Crypto/SelfTest/IO/test_PKCS8.py -> build/lib.mingw-3.5/Crypto/SelfTest/IO
    copying lib/Crypto/SelfTest/IO/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/IO
    creating build/lib.mingw-3.5/Crypto/SelfTest/Protocol
    copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.mingw-3.5/Crypto/SelfTest/Pr                                       otocol
    copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.mingw-3.5/Crypto/SelfTes                                       t/Protocol
    copying lib/Crypto/SelfTest/Protocol/test_SecretSharing.py -> build/lib.mingw-3.5/Crypto/S                                       elfTest/Protocol
    copying lib/Crypto/SelfTest/Protocol/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Pr                                       otocol
    creating build/lib.mingw-3.5/Crypto/SelfTest/PublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.mingw-3.5/Crypto/SelfTest/P                                       ublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_ECC.py -> build/lib.mingw-3.5/Crypto/SelfTest/P                                       ublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.mingw-3.5/Crypto/SelfTe                                       st/PublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_import_DSA.py -> build/lib.mingw-3.5/Crypto/Sel                                       fTest/PublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_import_ECC.py -> build/lib.mingw-3.5/Crypto/Sel                                       fTest/PublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_import_RSA.py -> build/lib.mingw-3.5/Crypto/Sel                                       fTest/PublicKey
    copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.mingw-3.5/Crypto/SelfTest/P                                       ublicKey
    copying lib/Crypto/SelfTest/PublicKey/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/P                                       ublicKey
    creating build/lib.mingw-3.5/Crypto/SelfTest/Random
    copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.mingw-3.5/Crypto/SelfTest/R                                       andom
    copying lib/Crypto/SelfTest/Random/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Rand                                       om
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature
    copying lib/Crypto/SelfTest/Signature/test_dss.py -> build/lib.mingw-3.5/Crypto/SelfTest/S                                       ignature
    copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.mingw-3.5/Crypto/SelfT                                       est/Signature
    copying lib/Crypto/SelfTest/Signature/test_pss.py -> build/lib.mingw-3.5/Crypto/SelfTest/S                                       ignature
    copying lib/Crypto/SelfTest/Signature/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/S                                       ignature
    creating build/lib.mingw-3.5/Crypto/SelfTest/Util
    copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.mingw-3.5/Crypto/SelfTest/Util
    copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ut                                       il
    copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.mingw-3.5/Crypto/SelfTest/Uti                                       l
    copying lib/Crypto/SelfTest/Util/test_Padding.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ut                                       il
    copying lib/Crypto/SelfTest/Util/test_strxor.py -> build/lib.mingw-3.5/Crypto/SelfTest/Uti                                       l
    copying lib/Crypto/SelfTest/Util/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Util
    creating build/lib.mingw-3.5/Crypto/SelfTest/Math
    copying lib/Crypto/SelfTest/Math/test_Numbers.py -> build/lib.mingw-3.5/Crypto/SelfTest/Ma                                       th
    copying lib/Crypto/SelfTest/Math/test_Primality.py -> build/lib.mingw-3.5/Crypto/SelfTest/                                       Math
    copying lib/Crypto/SelfTest/Math/__init__.py -> build/lib.mingw-3.5/Crypto/SelfTest/Math
    creating build/lib.mingw-3.5/Crypto/SelfTest/Cipher/test_vectors
    creating build/lib.mingw-3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCGFSbox128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCGFSbox192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCGFSbox256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCKeySbox128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCKeySbox192.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCKeySbox256.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMCT128.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMCT192.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMCT256.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMMT128.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMMT192.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCMMT256.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarKey128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarKey192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarKey256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarTxt128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarTxt192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CBCVarTxt256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128GFSbox128.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128GFSbox192.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128GFSbox256.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128KeySbox128.rsp -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128KeySbox192.rsp -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128KeySbox256.rsp -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MCT128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MCT192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MCT256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MMT128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MMT192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128MMT256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarKey128.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarKey192.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarKey256.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarTxt128.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarTxt192.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB128VarTxt256.rsp -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8GFSbox128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8GFSbox192.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8GFSbox256.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8KeySbox128.rsp -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8KeySbox192.rsp -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8KeySbox256.rsp -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MCT128.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MCT192.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MCT256.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MMT128.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MMT192.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8MMT256.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarKey128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarKey192.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarKey256.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarTxt128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarTxt192.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/CFB8VarTxt256.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/gcmDecrypt128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/gcmEncryptExtIV128.rsp -> build/lib.mi                                       ngw-3.5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBGFSbox128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBGFSbox192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBGFSbox256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBKeySbox128.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBKeySbox192.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBKeySbox256.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMCT128.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMCT192.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMCT256.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMMT128.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMMT192.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBMMT256.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarKey128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarKey192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarKey256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarTxt128.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarTxt192.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/AES/OFBVarTxt256.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/AES
    creating build/lib.mingw-3.5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCinvperm.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCMMT2.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCMMT3.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCpermop.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCsubtab.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCvarkey.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCBCvartext.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64invperm.rsp -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64MMT2.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64MMT3.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64permop.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64subtab.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64varkey.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB64vartext.rsp -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8invperm.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8MMT2.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8MMT3.rsp -> build/lib.mingw-3.5/                                       Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8permop.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8subtab.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8varkey.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TCFB8vartext.rsp -> build/lib.mingw-3                                       .5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TECBMMT2.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TECBMMT3.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBinvperm.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBMMT2.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBMMT3.rsp -> build/lib.mingw-3.5/C                                       rypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBpermop.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBsubtab.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBvarkey.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Cipher/test_vectors/TDES
    copying lib/Crypto/SelfTest/Cipher/test_vectors/TDES/TOFBvartext.rsp -> build/lib.mingw-3.                                       5/Crypto/SelfTest/Cipher/test_vectors/TDES
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHA3-224.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHA3-256.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHA3-384.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHA3-512.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHAKE128.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    copying lib/Crypto/SelfTest/Hash/test_vectors/SHA3/ShortMsgKAT_SHAKE256.txt -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/Hash/test_vectors/SHA3
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ExtremelyLongMsgKAT_224.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ExtremelyLongMsgKAT_256.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ExtremelyLongMsgKAT_384.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ExtremelyLongMsgKAT_512.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/LongMsgKAT_224.txt -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/LongMsgKAT_256.txt -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/LongMsgKAT_384.txt -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/LongMsgKAT_512.txt -> build/lib.mingw                                       -3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/readme.txt -> build/lib.mingw-3.5/Cry                                       pto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ShortMsgKAT_224.txt -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ShortMsgKAT_256.txt -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ShortMsgKAT_384.txt -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    copying lib/Crypto/SelfTest/Hash/test_vectors/keccak/ShortMsgKAT_512.txt -> build/lib.ming                                       w-3.5/Crypto/SelfTest/Hash/test_vectors/keccak
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/BLAKE2s
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2s/blake2s-test.txt -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Hash/test_vectors/BLAKE2s
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2s/tv1.txt -> build/lib.mingw-3.5/Crypt                                       o/SelfTest/Hash/test_vectors/BLAKE2s
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2s/tv2.txt -> build/lib.mingw-3.5/Crypt                                       o/SelfTest/Hash/test_vectors/BLAKE2s
    creating build/lib.mingw-3.5/Crypto/SelfTest/Hash/test_vectors/BLAKE2b
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2b/blake2b-test.txt -> build/lib.mingw-                                       3.5/Crypto/SelfTest/Hash/test_vectors/BLAKE2b
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2b/tv1.txt -> build/lib.mingw-3.5/Crypt                                       o/SelfTest/Hash/test_vectors/BLAKE2b
    copying lib/Crypto/SelfTest/Hash/test_vectors/BLAKE2b/tv2.txt -> build/lib.mingw-3.5/Crypt                                       o/SelfTest/Hash/test_vectors/BLAKE2b
    creating build/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors
    creating build/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256.txt -> build/lib.mingw-3.5                                       /Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private.der -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private.pem -> build/lib.m                                       ingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_enc_aes128.pem ->                                        build/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_enc_aes192.pem ->                                        build/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_enc_aes256_gcm.pem                                        -> build/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_enc_des3.pem -> bu                                       ild/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_p8.der -> build/li                                       b.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_p8.pem -> build/li                                       b.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_p8_clear.der -> bu                                       ild/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_private_p8_clear.pem -> bu                                       ild/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_public.der -> build/lib.mi                                       ngw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_public.pem -> build/lib.mi                                       ngw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_public_openssh.txt -> buil                                       d/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_x509.der -> build/lib.ming                                       w-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/ecc_p256_x509.pem -> build/lib.ming                                       w-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/gen_ecc_p256.sh -> build/lib.mingw-                                       3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/openssl_version.txt -> build/lib.mi                                       ngw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    copying lib/Crypto/SelfTest/PublicKey/test_vectors/ECC/point-at-infinity.org-P256.txt -> b                                       uild/lib.mingw-3.5/Crypto/SelfTest/PublicKey/test_vectors/ECC
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/DSA
    copying lib/Crypto/SelfTest/Signature/test_vectors/DSA/FIPS_186_3_SigGen.txt -> build/lib.                                       mingw-3.5/Crypto/SelfTest/Signature/test_vectors/DSA
    copying lib/Crypto/SelfTest/Signature/test_vectors/DSA/FIPS_186_3_SigVer.rsp -> build/lib.                                       mingw-3.5/Crypto/SelfTest/Signature/test_vectors/DSA
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/ECDSA
    copying lib/Crypto/SelfTest/Signature/test_vectors/ECDSA/README.txt -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Signature/test_vectors/ECDSA
    copying lib/Crypto/SelfTest/Signature/test_vectors/ECDSA/SigGen.txt -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Signature/test_vectors/ECDSA
    copying lib/Crypto/SelfTest/Signature/test_vectors/ECDSA/SigVer.rsp -> build/lib.mingw-3.5                                       /Crypto/SelfTest/Signature/test_vectors/ECDSA
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5/SigGen15_186-2.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5/SigGen15_186-3.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5/SigVer15_186-3.rsp -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-v1.5
    creating build/lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS/SigGenPSS_186-2.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS/SigGenPSS_186-3.txt -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS
    copying lib/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS/SigVerPSS_186-3.rsp -> build/                                       lib.mingw-3.5/Crypto/SelfTest/Signature/test_vectors/PKCS1-PSS
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    Compiling support for Intel AES instructions
    building 'Crypto.Hash._MD2' extension
    creating build/temp.mingw-3.5
    creating build/temp.mingw-3.5/src
    C:\msys64\mingw32\bin/i686-w64-mingw32-gcc.exe -Wno-unused-result -Wsign-compare -DNDEBUG                                        -march=i686 -mtune=generic -O2 -pipe -fwrapv -D__USE_MINGW_ANSI_STDIO=1 -DNDEBUG -DLTC_NO_ASM                                        -DHAVE_CPUID_H -Isrc/ -IC:/msys64/mingw32/include/python3.5m -c src/MD2.c -o build/temp.mingw-                                       3.5/src/MD2.o
    In file included from src/MD2.c:28:0:
    src/pycrypto_common.h:48:20: fatal error: alloca.h: No such file or directory
     #include <alloca.h>
                        ^
    compilation terminated.
    error: command 'C:\\msys64\\mingw32\\bin/i686-w64-mingw32-gcc.exe' failed with exit status                                        1

    ----------------------------------------
Command "C:/msys64/mingw32/bin/python3.exe -u -c "import setuptools, tokenize;__file__='C:/msy                                       s64/tmp/pip-build-itqycp94/pycryptodome/setup.py';f=getattr(tokenize, 'open', open)(__file__);                                       code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install -                                       -record C:/msys64/tmp/pip-n0yfjkru-record/install-record.txt --single-version-externally-manag                                       ed --compile" failed with error code 1 in C:/msys64/tmp/pip-build-itqycp94/pycryptodome/

src/block_base.h:15: error: redefinition of typedef โ€˜BlockBaseโ€™ by GCC 4.4.7

In Centos6.5, GCC 4.4.7, Python 2.7.10, pip install fails:

pip install pycryptodome

and got this error

...
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DLTC_NO_ASM -DHAVE_CPUID_H -Isrc/ -I/usr/local/include/python2.7 -c src/AES.c -o build/temp.linux-x86_64-2.7/src/AES.o
In file included from src/AES.c:29:
src/block_base.h:15: error: redefinition of typedef โ€˜BlockBaseโ€™
src/block_base.h:6: note: previous declaration of โ€˜BlockBaseโ€™ was here
error: command 'gcc' failed with exit status 1

If I switch CC to gcc4.7, it works.

CC=gcc47 pip install pycryptodome

NOTE: here is my virtualenv:

> pip list
pip (7.1.2)
setuptools (18.4)
wheel (0.26.0)

Is there any a supported/tested minimum version of GCC? There seems some GCC behavior changes between 4.4 and 4.7.

warning: no support for Intel AESNI instructions unable to execute

Expected Behavior

Install requirments

Actual Behavior

trows error:

warning: no support for Intel AESNI instructions
unable to execute '/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc': No such file or directory
error: Setup script exited with error: command '/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc' failed with exit status 1

### Steps to Reproduce
I have a synology NAS and I have tried the following commands to get it working:

sudo pip install -r ./requirements.txt
also tried:
while read line; do sudo easy_install $line; done < requirements.txt

It looks like an build error for the linux kernel.

Other Information

OS: Synology Linux DSM 6.x
Git Commit: latest release

Similair issues:

https://github.com/AHAAAAAAA/PokemonGo-Map/issues/945
PokemonGoF/PokemonGo-Bot#1612

Not possible to install PyCryptodome under alternative package name ("Cryptodome") with Windows Precompiled

I actually mentioned this already in another recent ticket, but since this problem was not reflected in that ticket's title, and since it is not a good practice to report multiple issues in the same ticket in general, I'm hereby creating a new ticket for this issue alone. That being said, here goes:

It is currently not possible to install the Windows Precompiled version of PyCryptodome (i.e. using the wheel files) under the alternative package name ("Cryptodome"), but rather only under the "Crypto" package name which collides with PyCrypto.

For more details, please see the following StackOverflow question about this:

http://stackoverflow.com/questions/37504622/how-to-install-a-python-wheel-under-an-alternative-package-name-in-my-specific

It would therefore be super if you could provide wheel files also for installing under the "Cryptodome" package name.

(to make matters even worse, your documentation falsely claims says that the Windows Precompiled version will install under the "Cryptodome" package name, which is what my other recent ticket was about).

Python 3.5: problems with cffi-1.7.0 vs missing cffi module

There is a problem with Anaconda 4.2.0 version of python 3.5:

First example is Python 3.5 from Anaconda 4.2.0

Python 3.5.2 |Anaconda 4.2.0 (x86_64)| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from Crypto.Protocol.KDF import scrypt
>>> passphrase = b"secret passphrase"
>>> salt = b"a bit of salt"
>>> scrypt(passphrase, salt, 32, N=1024, r=8, p=1)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda3/lib/python3.5/site-packages/Crypto/Protocol/KDF.py", line 387, in scrypt
    for x in range(0, len(blocks), 128 * r)])
  File "/opt/anaconda3/lib/python3.5/site-packages/Crypto/Protocol/KDF.py", line 387, in <listcomp>
    for x in range(0, len(blocks), 128 * r)])
  File "/opt/anaconda3/lib/python3.5/site-packages/Crypto/Protocol/KDF.py", line 323, in _scryptROMix
    t = [strxor(x[idx], v[j][idx]) for idx in range(len_x)]
  File "/opt/anaconda3/lib/python3.5/site-packages/Crypto/Protocol/KDF.py", line 323, in <listcomp>
    t = [strxor(x[idx], v[j][idx]) for idx in range(len_x)]
TypeError: argument 1 must be bytes, not _cffi_backend.CDataOwn

Compared to python 3.5 (installed by homebrew)

Python 3.5.2 (default, Oct 11 2016, 05:05:28)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from Crypto.Protocol.KDF import scrypt
>>> passphrase = b"secret passphrase"
>>> salt = b"a bit of salt"
>>> scrypt(passphrase, salt, 32, N=1024, r=8, p=1)

b'\x1c\x87\x1dn\x80\x16\xe8\x10\xac^v\x08\xc8x,u\x19\x16\xf1\xed\x86\xdf\xd3_Y$\xd6e`#\xec\x88'

In both cases I installed PyCryptodome by using pip install pycryptodome

It looks like it can be reduced to Crypto.Util._raw_api.create_string_buffer:

Anaconda Python:

Python 3.5.2 |Anaconda 4.2.0 (x86_64)| (default, Jul  2 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from Crypto.Util._raw_api import create_string_buffer
>>> type(create_string_buffer(64))

<class '_cffi_backend.CDataOwn'>

Homebrew Python:

Python 3.5.2 (default, Oct 11 2016, 05:05:28)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from Crypto.Util._raw_api import create_string_buffer
>>> type(create_string_buffer(64))

<class 'ctypes.c_char_Array_64'>

Going into detail, one sees, Anaconda is coming with cffi-1.7.0 while Homebrew python doesn't have cffi. Now in _raw_api cffi gets imported in a try loop. So Anaconda uses cffi (and fails) while Homebrew doesn't (and succeeds).

PKCS#1 v1.5 support

The library implements PKCS#1 OAEP, but the common standard is PKCS#1 v1.5 (eg. in openssl). Is there a chance to decrypt/encrypt messages in PKCS#1 v1.5? Eg: I can't decrypt messages which are encrypted by openssl:

openssl rsautl -sign -in hello.txt -inkey id_rsa -out out.sig


PKCS1_OAEP.new(id_rsa).decrypt(open('hello.txt', "rb").read())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/local/lib/python2.7/site-packages/Cryptodome/Cipher/PKCS1_OAEP.py", line 227, in decrypt
    raise ValueError("Incorrect decryption.")
ValueError: Incorrect decryption.

ValueError: Error 3 while encrypting in ECB mode

Hi,

I'm trying a very simple encryption with this code

    bkey = '0123456789abcdef'.encode('utf-8')
    bclave = "A160".encode('utf-8')

    cipher = AES.new(bkey, AES.MODE_ECB)
    ciphertext = cipher.encrypt(bclave)

but I'm getting "ValueError: Error 3 while encrypting in ECB mode" I have no idea what "Error 3" means, could you help me please

Is the pycryptodome thread-safe?

Hello,

I'm wondering if I can use pycryptodome in a web environment (multithread) to generate RSA keys and decrypt messages:

key = RSA.generate(2048)
public_key = key.publickey().exportKey(format)
private_key = key.exportKey(format)
...
priv_key = RSA.importKey(private_key)
priv_key.decrypt(encrypted_message)

Are RSA.generate and RSA.importKey thread safe?

Thank you.

Implicit cast warning

When I :

public_key = new_key.publickey().exportKey('PEM')

I get :

lib/python3.5/site-packages/Cryptodome/Math/_Numbers_gmp.py:230: UserWarning: implicit cast to 'char *' from a different pointer type: will be forbidden in the future (check that the types are as you expect; use an explicit ffi.cast() if they are correct)
  _gmp.gmp_snprintf(buf, c_size_t(buf_len), b("%Zd"), self._mpz_p)

version : pycryptodomex==3.4.3
@pylover

Import fails on Solaris 11.3 SPARC

The installation seems to go okay:

> sudo pip install pycryptodome
You are using pip version 6.0.8, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pycryptodome
  Downloading pycryptodome-3.4.tar.gz (6.5MB)
    100% |################################| 6.5MB 23kB/s 
Installing collected packages: pycryptodome
  Running setup.py install for pycryptodome
    warning: no support for Intel AESNI instructions
    building 'Crypto.Hash._MD2' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/MD2.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/MD2.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_MD2.so
    building 'Crypto.Hash._MD4' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/MD4.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/MD4.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/MD4.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_MD4.so
    building 'Crypto.Hash._SHA256' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/SHA256.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA256.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA256.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_SHA256.so
    building 'Crypto.Hash._SHA224' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/SHA224.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA224.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA224.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_SHA224.so
    building 'Crypto.Hash._SHA384' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/SHA384.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA384.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA384.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_SHA384.so
    building 'Crypto.Hash._SHA512' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/SHA512.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA512.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/SHA512.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_SHA512.so
    building 'Crypto.Hash._RIPEMD160' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/RIPEMD160.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/RIPEMD160.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/RIPEMD160.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_RIPEMD160.so
    building 'Crypto.Hash._keccak' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/keccak.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/keccak.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/keccak.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_keccak.so
    building 'Crypto.Hash._BLAKE2b' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/blake2b.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/blake2b.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/blake2b.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_BLAKE2b.so
    building 'Crypto.Hash._BLAKE2s' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/blake2s.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/blake2s.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/blake2s.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Hash/_BLAKE2s.so
    building 'Crypto.Cipher._raw_aes' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/AES.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/AES.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/AES.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_aes.so
    building 'Crypto.Cipher._raw_arc2' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/ARC2.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/ARC2.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/ARC2.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_arc2.so
    building 'Crypto.Cipher._raw_blowfish' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/Blowfish.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/Blowfish.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/Blowfish.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_blowfish.so
    building 'Crypto.Cipher._raw_cast' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/CAST.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/CAST.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/CAST.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_cast.so
    building 'Crypto.Cipher._raw_des' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -Isrc/libtom/ -I/usr/include/python2.7 -c src/DES.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/DES.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/DES.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_des.so
    building 'Crypto.Cipher._raw_des3' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -Isrc/libtom/ -I/usr/include/python2.7 -c src/DES3.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/DES3.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/DES3.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_des3.so
    building 'Crypto.Util._galois' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/galois.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/galois.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/galois.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Util/_galois.so
    building 'Crypto.Util._cpuid' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/cpuid.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/cpuid.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/cpuid.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Util/_cpuid.so
    building 'Crypto.Cipher._raw_ecb' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_ecb.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ecb.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ecb.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_ecb.so
    building 'Crypto.Cipher._raw_cbc' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_cbc.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_cbc.o
    "src/raw_cbc.c", line 42: warning: zero or negative subscript
    "src/raw_cbc.c", line 81: warning: implicit function declaration: alloca
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_cbc.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_cbc.so
    building 'Crypto.Cipher._raw_cfb' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_cfb.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_cfb.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_cfb.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_cfb.so
    building 'Crypto.Cipher._raw_ofb' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_ofb.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ofb.o
    "src/raw_ofb.c", line 48: warning: zero or negative subscript
    "src/raw_ofb.c", line 93: warning: implicit function declaration: alloca
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ofb.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_ofb.so
    building 'Crypto.Cipher._raw_ctr' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_ctr.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ctr.o
    "src/raw_ctr.c", line 62: warning: zero or negative subscript
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ctr.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_ctr.so
    building 'Crypto.Cipher._raw_ocb' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/raw_ocb.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ocb.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/raw_ocb.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_raw_ocb.so
    building 'Crypto.Cipher._ARC4' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/ARC4.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/ARC4.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/ARC4.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_ARC4.so
    building 'Crypto.Cipher._Salsa20' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -Isrc/libtom/ -I/usr/include/python2.7 -c src/Salsa20.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/Salsa20.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/Salsa20.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_Salsa20.so
    building 'Crypto.Cipher._chacha20' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/chacha20.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/chacha20.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/chacha20.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Cipher/_chacha20.so
    building 'Crypto.Util._strxor' extension
    cc -DNDEBUG -KPIC -DPIC -DLTC_NO_ASM -Isrc/ -I/usr/include/python2.7 -c src/strxor.c -o build/temp.solaris-2.11-sun4v.32bit-2.7/src/strxor.o
    cc -G build/temp.solaris-2.11-sun4v.32bit-2.7/src/strxor.o -L/usr/lib -lpython2.7 -o build/lib.solaris-2.11-sun4v.32bit-2.7/Crypto/Util/_strxor.so
Successfully installed pycryptodome-3.4

But:

> python
Python 2.7.9 (default, Aug 19 2015, 20:12:04) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Cipher import AES as AES
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/Crypto/Cipher/__init__.py", line 79, in <module>
    from Crypto.Cipher._mode_cbc import _create_cbc_cipher
  File "/usr/lib/python2.7/site-packages/Crypto/Cipher/_mode_cbc.py", line 57, in <module>
    """
  File "/usr/lib/python2.7/site-packages/Crypto/Util/_raw_api.py", line 168, in load_pycryptodome_raw_lib
    raise OSError("Cannot load native module '%s'" % name)
OSError: Cannot load native module 'Crypto.Cipher._raw_cbc'

After commenting out the try/except in load_pycryptodome_raw_lib:

> python
Python 2.7.9 (default, Aug 19 2015, 20:12:04) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> from Crypto.Cipher import AES
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/Crypto/Cipher/__init__.py", line 79, in <module>
    from Crypto.Cipher._mode_cbc import _create_cbc_cipher
  File "/usr/lib/python2.7/site-packages/Crypto/Cipher/_mode_cbc.py", line 57, in <module>
    """
  File "/usr/lib/python2.7/site-packages/Crypto/Util/_raw_api.py", line 165, in load_pycryptodome_raw_lib
    return load_lib(pycryptodome_filename(dir_comps, basename + ext), cdecl)
  File "/usr/lib/python2.7/site-packages/Crypto/Util/_raw_api.py", line 51, in load_lib
    lib = ffi.dlopen(name)
  File "/usr/lib/python2.7/vendor-packages/cffi/api.py", line 119, in dlopen
    lib, function_cache = _make_ffi_library(self, name, flags)
  File "/usr/lib/python2.7/vendor-packages/cffi/api.py", line 412, in _make_ffi_library
    backendlib = _load_backend_lib(backend, libname, flags)
  File "/usr/lib/python2.7/vendor-packages/cffi/api.py", line 401, in _load_backend_lib
    return backend.load_library(name, flags)
OSError: cannot load library /usr/lib/python2.7/site-packages/Crypto/Util/../Cipher/_raw_cbc.so: ld.so.1: isapython2.7: fatal: relocation error: file /usr/lib/python2.7/site-packages/Crypto/Util/../Cipher/_raw_cbc.so: symbol alloca: referenced symbol not found

RSA module throws AttributeError

I don't knew that error is because of Paramiko==1.16.0 but with PyCrypto it works. I am using pycryptodome==3.3.1.

Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 1744, in run
    self.kex_engine.parse_next(ptype, m)
  File "build/bdist.linux-x86_64/egg/paramiko/kex_group1.py", line 75, in parse_next
    return self._parse_kexdh_reply(m)
  File "build/bdist.linux-x86_64/egg/paramiko/kex_group1.py", line 111, in _parse_kexdh_reply
    self.transport._verify_key(host_key, sig)
  File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 1604, in _verify_key
    if not key.verify_ssh_sig(self.H, Message(sig)):
  File "build/bdist.linux-x86_64/egg/paramiko/rsakey.py", line 113, in verify_ssh_sig
    return rsa.verify(hash_obj, (sig,))
  File "/path_to_env/local/lib/python2.7/site-packages/pycryptodome-3.3.1-py2.7-linux-x86_64.egg/Crypto/PublicKey/RSA.py", line 123, in __getattr__
    raise AttributeError(attrname)
AttributeError: verify

Wrong cffi version assertion

With a regular installation from a project that depends on pycryptodome (rohe/pyjwkest#75) I get a cffi assertion error:

>>> import jwkest.jwk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wikier/.local/lib/python3.5/site-packages/jwkest/jwk.py", line 11, in <module>
    from Cryptodome.PublicKey import RSA
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/PublicKey/RSA.py", line 79, in <module>
    from Cryptodome.IO import PKCS8, PEM
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/IO/PKCS8.py", line 73, in <module>
    from Cryptodome.IO._PBES import PBES1, PBES2, PbesError
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/IO/_PBES.py", line 44, in <module>
    from Cryptodome.Cipher import DES, ARC2, DES3, AES
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/Cipher/__init__.py", line 78, in <module>
    from Cryptodome.Cipher._mode_ecb import _create_ecb_cipher
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/Cipher/_mode_ecb.py", line 29, in <module>
    from Cryptodome.Util._raw_api import (load_pycryptodome_raw_lib,
  File "/home/wikier/.local/lib/python3.5/site-packages/Cryptodome/Util/_raw_api.py", line 39, in <module>
    ffi = FFI()
  File "/home/wikier/.local/lib/python3.5/site-packages/cffi/api.py", line 59, in __init__
    "version mismatch, %s != %s" % (backend.__version__, __version__)
AssertionError: version mismatch, 1.7.0 != 1.8.3

Which I manage to fix by manually forcing the version:

pip install cffi==1.7.0

So that needs to be declared in the package dependencies.

Python 3.5 cast warning

/usr/local/lib/python3.5/dist-packages/Crypto/Math/_Numbers_gmp.py:230: UserWarning: implicit cast to 'char *' from a different pointer type: will be forbidden in the future (check that the types are as you expect; use an explicit ffi.cast() if they are correct)
  _gmp.gmp_snprintf(buf, c_size_t(buf_len), b("%Zd"), self._mpz_p)

Implement a high level authenticated symmetric function

Alright, so I know that PyCryptodome is a package of low-level cryptographic primitives, but this is my favorite cryptographic library by far to use. Often times I wish there was a high level AES function that used CBC mode with HMAC. The Cryptography.io package implements the Fernet spec and this makes me wonder why we don't do this as well or at least offer a high level implementation of one of these algorithms (like GCM for authenticated encryption).

I believe it would help boost adoption of this library. I'm willing to build the implementation of it if this is something that the maintainers would find useful. Of course, this sort of detracts away from the PyCrypto side of this library, but maybe it's time we added something like this?

If not, I think I will just build a python package that implements a few of these algorithms.

CTR mode support initial_value as bytes?

In schemes such as CTR-ESSIV, the initial value for the counter in CTR mode is the output of an AES encrypt, naturally a series of bytes. However, the CTR mode only accepts initial_value as an integer (which it then converts internally back to bytes). If it could accept initial_value as bytes it would avoid the unnecessary conversions in this situation.

FFI implicit cast warning from SHA256

Full warning message:
"/venv/lib/python3.5/site-packages/Cryptodome/Hash/SHA256.py:116:
UserWarning: implicit cast from 'char *' to a different pointer type: will be forbidden in the future (check that the types are as you expect; use an explicit ffi.cast() if they are correct)
[18:27:59][Step 1/1] bfr)"

Missing Python 3.3 Windows wheels

I don't know if it's intentional or by accident, but there are no Python 3.3 wheels for pyCryptodome 3.4.5. Has 3.3 support been dropped?

AES.OCB default nonce length deviates from documentation

Hi,

sorry for being such a pest ATM, but I noticed another issue.
OCB mode is documented to use a nonce length of 15. This is also reflected in code:
Module Crypto/Cipher/_mode_ocb.py: _create_ocb_cipher, but:

--> from Crypto.Cipher import AES
--> plaintext = b'Attack at dawn'
--> key = b'Sixteen byte key'
--> cipher = AES.new(key, AES.MODE_CCM)
--> ciphertext = cipher.encrypt_and_digest(plaintext)
--> len(cipher.nonce)
11

I haven't found the code, that is responsible for this deviation.

Support for building/installing without OCB things

Unfortunately that license is not fully free and we can't package it in Fedora (I guess, same for other distros like Debian).

Would be nice if we can get some option which will not build/install such code.

error: [Errno 2] No such file or directory: 'build/test1.c'

Hi!,

I'm trying to create a snap package for my project (https://github.com/tizonia/tizonia-openmax-il), and I'm finding this error when pycryptodomex' setup.py is being run.

Pycryptodomex is being pulled as my project depends on 'gmusicapi', and 'gmusicapi' depends on 'pycrodomex'.

It looks like Pycryptodome's setup.py by default assumes a 'build' folder under the distribution root directory, and it looks like there isn't one when all this is being triggered by 'snapcraft'.

I'm not too familiar with either setup.py scripts or snapcraft, so I guess there is a possibility that this could be a snapcraft defect.

(NOTE: tizonia's snapcraft.yaml location is https://github.com/tizonia/tizonia-openmax-il/blob/master/tools/snapcraft.yaml)

 Running setup.py install for rsa ... done
  Running setup.py install for oauth2client ... done
  Running setup.py install for funcsigs ... done
  Running setup.py install for pbr ... done
  Running setup.py install for mock ... done
  Running setup.py install for appdirs ... done
  Running setup.py install for pycryptodomex ... error
    Complete output from command /home/joni/work/snap/parts/pypideps/install/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-EmijGR/pycryptodomex/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" build_ext -I/home/joni/work/snap/parts/pypideps/install/usr/include/python2.7 install --record /tmp/pip-hvWWzT-record/install-record.txt --single-version-externally-managed --compile --home=/tmp/tmpbv29_M:
    running build_ext
    error: [Errno 2] No such file or directory: 'build/test1.c'

    ----------------------------------------
Command "/home/joni/work/snap/parts/pypideps/install/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-EmijGR/pycryptodomex/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" build_ext -I/home/joni/work/snap/parts/pypideps/install/usr/include/python2.7 install --record /tmp/pip-hvWWzT-record/install-record.txt --single-version-externally-managed --compile --home=/tmp/tmpbv29_M" failed with error code 1 in /tmp/pip-build-EmijGR/pycryptodomex/
Traceback (most recent call last):
  File "/usr/bin/snapcraft", line 31, in <module>
    snapcraft.main.main()
  File "/usr/lib/python3/dist-packages/snapcraft/main.py", line 203, in main
    return run(args, project_options)
  File "/usr/lib/python3/dist-packages/snapcraft/main.py", line 259, in run
    lifecycle.snap(project_options, args['<directory>'], args['--output'])
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle.py", line 256, in snap
    snap = execute('prime', project_options)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle.py", line 98, in execute
    _Executor(config, project_options).run(step, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle.py", line 127, in run
    self._run_step(step, part, part_names, dirty, recursed)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle.py", line 165, in _run_step
    getattr(part, step)()
  File "/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler.py", line 276, in pull
    self.code.pull()
  File "/usr/lib/python3/dist-packages/snapcraft/plugins/python2.py", line 106, in pull
    self._pip()
  File "/usr/lib/python3/dist-packages/snapcraft/plugins/python2.py", line 147, in _pip
    self.options.python_packages)
  File "/usr/lib/python3/dist-packages/snapcraft/_baseplugin.py", line 221, in run
    return common.run(cmd, cwd=cwd, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/common.py", line 61, in run
    subprocess.check_call(['/bin/sh', f.name] + cmd, **kwargs)
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/bin/sh', '/tmp/tmpfqfr7sp2', 'python2', '/home/joni/work/snap/parts/pypideps/install/usr/bin/pip2', 'install', '--global-option=build_ext', '--global-option=-I/home/joni/work/snap/parts/pypideps/install/usr/include/python2.7', '--target', '/home/joni/work/snap/parts/pypideps/install/usr/lib/python2.7/site-packages', '--upgrade', 'soundcloud', 'gmusicapi']' returned non-zero exit status 1

Fails to build for Python 2.4 on Mac

Though build succeeds for Python 2.6+. Here's installation log:

$ pip install pycryptodome
Downloading/unpacking pycryptodome
  Downloading pycryptodome-3.4.3.tar.gz (6.5Mb): 6.5Mb downloaded
  Running setup.py egg_info for package pycryptodome
    warning: no files found matching '.separate_namespace'
Installing collected packages: pycryptodome
  Running setup.py install for pycryptodome
    warning: no support for Intel AESNI instructions
    building 'Crypto.Hash._MD2' extension
    gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 -DLTC_NO_ASM -Isrc/ -I/Library/Frameworks/Python.framework/Versions/2.4/include/python2.4 -c src/MD2.c -o build/temp.macosx-10.3-fat-2.4/src/MD2.o
    clang: error: unknown argument: '-mno-fused-madd'
    clang: warning: no such sysroot directory: '/Developer/SDKs/MacOSX10.4u.sdk'
    clang: warning: no such sysroot directory: '/Developer/SDKs/MacOSX10.4u.sdk'
    error: command 'gcc' failed with exit status 1

pycryptodome doesn't work with cx_Freeze or py2exe

I was looking for a PyCrypto replacement to use in a project which is deployed on Windows with cx_Freeze. At first pycryptodome looked like the perfect candidate, but the very dynamic loading of the binary modules through load_pycryptodome_raw_lib() and especially pycryptodome_filename() makes it pretty much impossible to use pycryptodome with either cx_Freeze or py2exe:

  • Because of the dynamic loading through load_pycryptodome_raw_lib() cx_Freeze doesn't even find the modules to include in the binary distribution, so they're just missing.
  • But even if the C-extensions were available at runtime, pycryptodome_filename() wouldn't be able to load them because __file__ doesn't work with cx_Freeze where all modules are compiled and in a ZIP file.

pycryptodome looks like a great library, but it would be much more useful if it just used normal import statements for the C-extensions.

scrypt performance

Hi,

there's some deviation in performance from what is documented, and what I'm able to harvest here.
Using pycryptodome 3.4.3 with Python 3.4.5 on a x86_64 linux machine with a i7-4790K CPU @ 4.00GHz and plenty of RAM, scrypt(N, r, p) with (1048576, 8, 1) is mentioned to take ~5 secs on common hardware from 2009, while it takes ~83 secs on my slightly(!) newer system here. ๐Ÿ˜Ÿ

Watching the process with ps reveals, that just filling the table takes ~20 secs (time until memory peak load at ~2GB is reached).

Any idea, why the difference is that big?

Here's something to play with::

import os
import time
from binascii import hexlify
from Crypto.Protocol.KDF import scrypt

password = os.urandom(8)
password_str = hexlify(password)
salt = os.urandom(16)
salt_str = hexlify(salt)
key_len = 32
N = 2**20
r = 8
p = 1

print('scrypt({password_str}, {salt_str}, key_len = {key_len}, '
      'N = {N}, r = {r}, p = {p}) started'.format(**locals()))
starttime = time.time()
key = scrypt(password, salt, key_len = 32, N = 2**20, r = 8, p = 1)
duration = time.time() - starttime
key_str = hexlify(key)
key_len = len(key)
print('scrypt finished in {duration:.2f} secs: [{key_len}]{key_str}'.format(**locals()))

Custom number of rounds in AES processing

Hi Elder,

don't know, if this is out of scope, but reading about AES weaknesses raised this question for my favourite crypto lib:

Would you consider an optional parameter to supply the custom number of AES rounds processing a sensible approach to tavkle this problem?

Cannot install due to "malloc.h" not found

Collecting pycryptodome
  Using cached pycryptodome-3.4.3.tar.gz
Installing collected packages: pycryptodome
  Running setup.py install for pycryptodome: started
    Running setup.py install for pycryptodome: finished with status 'error'
    Complete output from command c:\python3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-build-3imx2dxh\\pycryptodome\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\ADMINI~1\AppData\Local\Temp\pip-z5gio2fd-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.6
    creating build\lib.win32-3.6\Crypto
    copying lib\Crypto\__init__.py -> build\lib.win32-3.6\Crypto
    creating build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\AES.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\ARC2.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\ARC4.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\Blowfish.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\CAST.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\ChaCha20.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\DES.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\DES3.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\PKCS1_OAEP.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\PKCS1_v1_5.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\Salsa20.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_cbc.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_ccm.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_cfb.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_ctr.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_eax.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_ecb.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_gcm.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_ocb.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_ofb.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_openpgp.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\_mode_siv.py -> build\lib.win32-3.6\Crypto\Cipher
    copying lib\Crypto\Cipher\__init__.py -> build\lib.win32-3.6\Crypto\Cipher
    creating build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\BLAKE2b.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\BLAKE2s.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\CMAC.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\HMAC.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\keccak.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\MD2.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\MD4.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\MD5.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\RIPEMD.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\RIPEMD160.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA1.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA224.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA256.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA384.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA3_224.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA3_256.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA3_384.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA3_512.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHA512.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHAKE128.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\SHAKE256.py -> build\lib.win32-3.6\Crypto\Hash
    copying lib\Crypto\Hash\__init__.py -> build\lib.win32-3.6\Crypto\Hash
    creating build\lib.win32-3.6\Crypto\IO
    copying lib\Crypto\IO\PEM.py -> build\lib.win32-3.6\Crypto\IO
    copying lib\Crypto\IO\PKCS8.py -> build\lib.win32-3.6\Crypto\IO
    copying lib\Crypto\IO\_PBES.py -> build\lib.win32-3.6\Crypto\IO
    copying lib\Crypto\IO\__init__.py -> build\lib.win32-3.6\Crypto\IO
    creating build\lib.win32-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\DSA.py -> build\lib.win32-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\ECC.py -> build\lib.win32-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\ElGamal.py -> build\lib.win32-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\RSA.py -> build\lib.win32-3.6\Crypto\PublicKey
    copying lib\Crypto\PublicKey\__init__.py -> build\lib.win32-3.6\Crypto\PublicKey
    creating build\lib.win32-3.6\Crypto\Protocol
    copying lib\Crypto\Protocol\KDF.py -> build\lib.win32-3.6\Crypto\Protocol
    copying lib\Crypto\Protocol\SecretSharing.py -> build\lib.win32-3.6\Crypto\Protocol
    copying lib\Crypto\Protocol\__init__.py -> build\lib.win32-3.6\Crypto\Protocol
    creating build\lib.win32-3.6\Crypto\Random
    copying lib\Crypto\Random\random.py -> build\lib.win32-3.6\Crypto\Random
    copying lib\Crypto\Random\__init__.py -> build\lib.win32-3.6\Crypto\Random
    creating build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\DSS.py -> build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\pkcs1_15.py -> build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\PKCS1_PSS.py -> build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\PKCS1_v1_5.py -> build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\pss.py -> build\lib.win32-3.6\Crypto\Signature
    copying lib\Crypto\Signature\__init__.py -> build\lib.win32-3.6\Crypto\Signature
    creating build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\asn1.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\Counter.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\number.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\Padding.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\py3compat.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\RFC1751.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\strxor.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\_file_system.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\_number_new.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\_raw_api.py -> build\lib.win32-3.6\Crypto\Util
    copying lib\Crypto\Util\__init__.py -> build\lib.win32-3.6\Crypto\Util
    creating build\lib.win32-3.6\Crypto\Math
    copying lib\Crypto\Math\Numbers.py -> build\lib.win32-3.6\Crypto\Math
    copying lib\Crypto\Math\Primality.py -> build\lib.win32-3.6\Crypto\Math
    copying lib\Crypto\Math\_Numbers_gmp.py -> build\lib.win32-3.6\Crypto\Math
    copying lib\Crypto\Math\_Numbers_int.py -> build\lib.win32-3.6\Crypto\Math
    copying lib\Crypto\Math\__init__.py -> build\lib.win32-3.6\Crypto\Math
    creating build\lib.win32-3.6\Crypto\SelfTest
    copying lib\Crypto\SelfTest\loader.py -> build\lib.win32-3.6\Crypto\SelfTest
    copying lib\Crypto\SelfTest\st_common.py -> build\lib.win32-3.6\Crypto\SelfTest
    copying lib\Crypto\SelfTest\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest
    copying lib\Crypto\SelfTest\__main__.py -> build\lib.win32-3.6\Crypto\SelfTest
    creating build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\common.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_AES.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ARC2.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ARC4.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_Blowfish.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CAST.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CBC.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CCM.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CFB.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ChaCha20.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CTR.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_DES.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_DES3.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_EAX.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_GCM.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_OCB.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_OFB.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_OpenPGP.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_pkcs1_15.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_pkcs1_oaep.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_Salsa20.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_SIV.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Cipher
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\common.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_BLAKE2.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_CMAC.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_HMAC.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_keccak.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD2.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD4.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD5.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_RIPEMD160.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA1.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA224.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA256.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA384.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA3_224.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA3_256.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA3_384.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA3_512.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA512.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHAKE.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Hash
    creating build\lib.win32-3.6\Crypto\SelfTest\IO
    copying lib\Crypto\SelfTest\IO\test_PBES.py -> build\lib.win32-3.6\Crypto\SelfTest\IO
    copying lib\Crypto\SelfTest\IO\test_PKCS8.py -> build\lib.win32-3.6\Crypto\SelfTest\IO
    copying lib\Crypto\SelfTest\IO\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\IO
    creating build\lib.win32-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_KDF.py -> build\lib.win32-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_rfc1751.py -> build\lib.win32-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\test_SecretSharing.py -> build\lib.win32-3.6\Crypto\SelfTest\Protocol
    copying lib\Crypto\SelfTest\Protocol\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Protocol
    creating build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_DSA.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_ECC.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_ElGamal.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_import_DSA.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_import_ECC.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_import_RSA.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_RSA.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey
    creating build\lib.win32-3.6\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\test_random.py -> build\lib.win32-3.6\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Random
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\test_dss.py -> build\lib.win32-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\test_pkcs1_15.py -> build\lib.win32-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\test_pss.py -> build\lib.win32-3.6\Crypto\SelfTest\Signature
    copying lib\Crypto\SelfTest\Signature\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Signature
    creating build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_asn1.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_Counter.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_number.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_Padding.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_strxor.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Util
    creating build\lib.win32-3.6\Crypto\SelfTest\Math
    copying lib\Crypto\SelfTest\Math\test_Numbers.py -> build\lib.win32-3.6\Crypto\SelfTest\Math
    copying lib\Crypto\SelfTest\Math\test_Primality.py -> build\lib.win32-3.6\Crypto\SelfTest\Math
    copying lib\Crypto\SelfTest\Math\__init__.py -> build\lib.win32-3.6\Crypto\SelfTest\Math
    creating build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors
    creating build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCGFSbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCGFSbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCGFSbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCKeySbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCKeySbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCKeySbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMCT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMCT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMCT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMMT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMMT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCMMT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarKey128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarKey192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarKey256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarTxt128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarTxt192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CBCVarTxt256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128GFSbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128GFSbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128GFSbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128KeySbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128KeySbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128KeySbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MCT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MCT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MCT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MMT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MMT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128MMT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarKey128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarKey192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarKey256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarTxt128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarTxt192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB128VarTxt256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8GFSbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8GFSbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8GFSbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8KeySbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8KeySbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8KeySbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MCT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MCT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MCT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MMT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MMT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8MMT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarKey128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarKey192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarKey256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarTxt128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarTxt192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\CFB8VarTxt256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\gcmDecrypt128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\gcmEncryptExtIV128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBGFSbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBGFSbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBGFSbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBKeySbox128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBKeySbox192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBKeySbox256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMCT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMCT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMCT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMMT128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMMT192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBMMT256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarKey128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarKey192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarKey256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarTxt128.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarTxt192.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\AES\OFBVarTxt256.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\AES
    creating build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCinvperm.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCMMT2.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCMMT3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCpermop.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCsubtab.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCvarkey.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCBCvartext.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64invperm.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64MMT2.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64MMT3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64permop.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64subtab.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64varkey.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB64vartext.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8invperm.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8MMT2.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8MMT3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8permop.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8subtab.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8varkey.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TCFB8vartext.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TECBMMT2.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TECBMMT3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBinvperm.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBMMT2.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBMMT3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBpermop.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBsubtab.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBvarkey.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    copying lib\Crypto\SelfTest\Cipher\test_vectors\TDES\TOFBvartext.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Cipher\test_vectors\TDES
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHA3-224.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHA3-256.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHA3-384.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHA3-512.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHAKE128.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    copying lib\Crypto\SelfTest\Hash\test_vectors\SHA3\ShortMsgKAT_SHAKE256.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\SHA3
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ExtremelyLongMsgKAT_224.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ExtremelyLongMsgKAT_256.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ExtremelyLongMsgKAT_384.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ExtremelyLongMsgKAT_512.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\LongMsgKAT_224.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\LongMsgKAT_256.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\LongMsgKAT_384.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\LongMsgKAT_512.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\readme.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ShortMsgKAT_224.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ShortMsgKAT_256.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ShortMsgKAT_384.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    copying lib\Crypto\SelfTest\Hash\test_vectors\keccak\ShortMsgKAT_512.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\keccak
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2s
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2s\blake2s-test.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2s
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2s\tv1.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2s
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2s\tv2.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2s
    creating build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2b
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2b\blake2b-test.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2b
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2b\tv1.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2b
    copying lib\Crypto\SelfTest\Hash\test_vectors\BLAKE2b\tv2.txt -> build\lib.win32-3.6\Crypto\SelfTest\Hash\test_vectors\BLAKE2b
    creating build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors
    creating build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256.txt -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private.der -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_enc_aes128.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_enc_aes192.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_enc_aes256_gcm.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_enc_des3.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_p8.der -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_p8.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_p8_clear.der -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_private_p8_clear.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_public.der -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_public.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_public_openssh.txt -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_x509.der -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\ecc_p256_x509.pem -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\gen_ecc_p256.sh -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\openssl_version.txt -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    copying lib\Crypto\SelfTest\PublicKey\test_vectors\ECC\point-at-infinity.org-P256.txt -> build\lib.win32-3.6\Crypto\SelfTest\PublicKey\test_vectors\ECC
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\DSA
    copying lib\Crypto\SelfTest\Signature\test_vectors\DSA\FIPS_186_3_SigGen.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\DSA
    copying lib\Crypto\SelfTest\Signature\test_vectors\DSA\FIPS_186_3_SigVer.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\DSA
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\ECDSA
    copying lib\Crypto\SelfTest\Signature\test_vectors\ECDSA\README.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\ECDSA
    copying lib\Crypto\SelfTest\Signature\test_vectors\ECDSA\SigGen.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\ECDSA
    copying lib\Crypto\SelfTest\Signature\test_vectors\ECDSA\SigVer.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\ECDSA
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5\SigGen15_186-2.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5\SigGen15_186-3.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5\SigVer15_186-3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-v1.5
    creating build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS\SigGenPSS_186-2.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS\SigGenPSS_186-3.txt -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS
    copying lib\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS\SigVerPSS_186-3.rsp -> build\lib.win32-3.6\Crypto\SelfTest\Signature\test_vectors\PKCS1-PSS
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    warning: no support for Intel AESNI instructions
    building 'Crypto.Hash._MD2' extension
    creating build\temp.win32-3.6
    creating build\temp.win32-3.6\Release
    creating build\temp.win32-3.6\Release\src
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DLTC_NO_ASM -Isrc/ -Ic:\python3\include -Ic:\python3\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\wdf\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\wdf\um" "-IC:\Program Files (x86)\Windows Kits\10\include\wdf\winrt" /Tcsrc/MD2.c /Fobuild\temp.win32-3.6\Release\src/MD2.obj
    MD2.c
    c:\users\administrator\appdata\local\temp\pip-build-3imx2dxh\pycryptodome\src\pycrypto_common.h(43): fatal error C1083: Cannot open include file: 'malloc.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
    
    ----------------------------------------

Undefined Variable

number.py

# You need libgmp v5 or later to get mpz_powm_sec.  Warn if it's not available.
if _fastmath is not None and not (hasattr(_fastmath, "HAVE_DECL_MPZ_POWM_SEC") and _fastmath.HAVE_DECL_MPZ_POWM_SEC):
    _warn("Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)

PowmInsecureWarning is Undefined

Decrypt with OpenSSH key with passphrase

I'm trying to use my pub/private OpenSSH keys that has a passphrase and can't seem to get it to work. Does the RsaKey class not support OpenSSH keys with passphrases? I can get another OpenSSH key that doesn't have a passphrase to work correctly.

I'm getting this error:

File "C:\code\security.py", line 56, in _decrypt private_key = RSA.import_key(open(self.private_key).read(), passphrase=self.passphrase) File "C:\Python\.virtualenvs\releng-lib\lib\site-packages\Cryptodome\PublicKey\RSA.py", line 736, in import_key (der, marker, enc_flag) = PEM.decode(tostr(extern_key), passphrase) File "C:\Python\.virtualenvs\releng-lib\lib\site-packages\Cryptodome\IO\PEM.py", line 171, in decode data = unpad(objdec.decrypt(data), objdec.block_size) File "C:\Python\.virtualenvs\releng-lib\lib\site-packages\Cryptodome\Util\Padding.py", line 94, in unpad raise ValueError("Padding is incorrect.") ValueError: Padding is incorrect.

SmartPointer destructor might fail

I have this issue when using PyCryptoDome from an apache WSGI:
Exception ignored in: <bound method SmartPointer.__del__ of <Crypto.Util._raw_api.SmartPointer object at 0x7f79d4048e48>>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/Crypto/Util/_raw_api.py", line 146, in __del__
NameError: name 'hasattr' is not defined

It seems that using global functions (such as hasattr) during python interpreter destruction (as it might be the case here) lead to having builtin hasattr being undefined.

PyCryptoDome version is 3.4.3, Python version is 3.5.2, apache2 version is 2.4.18 and libapache2-mod-wsgi-py3 is 4.3.0-1.1build1, everything on ubuntu server 16.04.1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.