コード例 #1
0
ファイル: crypto.py プロジェクト: imbaczek/numbex
def generate_dsa_key_pair(bits=1024):
    dsa = DSA.gen_params(1024, lambda x:None)
    dsa.gen_key()
    pub = BIO.MemoryBuffer()
    dsa.save_pub_key_bio(pub)
    priv = BIO.MemoryBuffer()
    dsa.save_key_bio(priv, cipher=None)
    return dsa, priv.read(), pub.read()
コード例 #2
0
ファイル: test_dsa.py プロジェクト: Hypernode/M2Crypto
 def test_genparam_setparam_genkey(self):
     dsa = DSA.gen_params(1024, self.callback)
     assert len(dsa) == 1024
     p = dsa.p
     q = dsa.q
     g = dsa.g
     dsa2 = DSA.set_params(p,q,g)
     assert not dsa2.check_key()
     dsa2.gen_key()
     assert dsa2.check_key()
     r,s = dsa2.sign(self.data)
     assert dsa2.verify(self.data, r, s)
コード例 #3
0
ファイル: test_dsa.py プロジェクト: pmp-p/M2Crypto
 def test_pub_key_from_params(self):
     dsa = DSA.gen_params(1024, self.callback)
     dsa.gen_key()
     assert len(dsa) == 1024
     p = dsa.p
     q = dsa.q
     g = dsa.g
     pub = dsa.pub
     dsa2 = DSA.pub_key_from_params(p, q, g, pub)
     assert dsa2.check_key()
     r, s = dsa.sign(self.data)
     assert dsa2.verify(self.data, r, s)
コード例 #4
0
ファイル: test_dsa.py プロジェクト: pmp-p/M2Crypto
 def test_genparam_setparam_genkey(self):
     dsa = DSA.gen_params(1024, self.callback)
     self.assertEqual(len(dsa), 1024)
     p = dsa.p
     q = dsa.q
     g = dsa.g
     dsa2 = DSA.set_params(p, q, g)
     assert not dsa2.check_key()
     dsa2.gen_key()
     assert dsa2.check_key()
     r, s = dsa2.sign(self.data)
     assert dsa2.verify(self.data, r, s)
コード例 #5
0
ファイル: test_dsa.py プロジェクト: appknox/m2crypto
 def test_pub_key_from_params(self):
     dsa = DSA.gen_params(1024, self.callback)
     dsa.gen_key()
     assert len(dsa) == 1024
     p = dsa.p
     q = dsa.q
     g = dsa.g
     pub = dsa.pub
     dsa2 = DSA.pub_key_from_params(p,q,g,pub)
     assert dsa2.check_key()
     r,s = dsa.sign(self.data)
     assert dsa2.verify(self.data, r, s)
コード例 #6
0
ファイル: KeyGenCore.py プロジェクト: kichkasch/ioids
 def createKey(self, cipher, length, callback, parent=None):
     key = None
     if cipher == "RSA":
         exp = 65537
         print ("Create RSA key with key length %d bits\n" % length)
         key = RSA.gen_key(length, exp, callback)
     elif cipher == "DSA":
         print ("Create DSA key with key length %d bits\n" % length)
         dsa = DSA.gen_params(length, callback)
         dsa.gen_key()
         key = dsa
     if parent != None:
         parent.finishedGeneration(key)
     return key
コード例 #7
0
def _generate_keypair(password=None):
    dsa = DSA.gen_params(1024, os.urandom)

    mem_pub = BIO.MemoryBuffer()
    mem_private = BIO.MemoryBuffer()

    dsa.gen_key()
    if password is None:
        dsa.save_key_bio(mem_private, cipher=None)
    else:
        dsa.save_key_bio(mem_private, callback=lambda _: password)

    private_key = mem_private.getvalue()

    dsa.save_pub_key_bio(mem_pub)

    public_key = _run_ssh_on_string(SSH_KEYGEN_COMMAND + " -f %s -i -m PKCS8",
                                    mem_pub.getvalue())[:-1]
    return {"public": public_key, "private": private_key}
コード例 #8
0
def key_generation():

  #DSA key generation

  dsa = DSA.gen_params(1024)
  dsa.gen_key()
  dsa.save_key('dsa.key', None)
  dsa.save_pub_key('dsa_pub.key')

  #RSA key generation

  new_key = RSA.generate(1024)
  public_key = new_key.publickey().exportKey("PEM")
  private_key = new_key.exportKey("PEM")
  with open('rsa_pub.key','w') as f:
    f.write(public_key)
  with open('rsa.key','w') as f:
    f.write(private_key)
  return "Key generated!"
コード例 #9
0
ファイル: dsa_bench.py プロジェクト: xampserver1/M2Crypto
def main(keylen, hashalg):
    global dsa, dgst  # this exists ONLY for speed testing

    Rand.load_file('randpool.dat', -1)

    pvtkeyfilename = 'DSA%dpvtkey.pem' % (keylen)
    pubkeyfilename = 'DSA%dpubkey.pem' % (keylen)

    if makenewkey:
        print '  making and saving a new key'
        dsa = DSA.gen_params(keylen)
        dsa.gen_key()
        dsa.save_key(pvtkeyfilename, None)  # no pswd callback
        dsa.save_pub_key(pubkeyfilename)
    else:
        print '  loading an existing key'
        dsa = DSA.load_key(pvtkeyfilename)
    print '  dsa key length:', len(dsa)

    if not dsa.check_key():
        raise 'key is not initialised'

    if showpubkey:
        dsa_pub = dsa.pub
        pub_pem = base64.encodestring(dsa_pub)
        print '  PEM public key is: \n', pub_pem

    # since we are testing signing and verification, let's not
    # be fussy about the digest.  Just make one.
    md = EVP.MessageDigest(hashalg)
    md.update('can you spell subliminal channel?')
    dgst = md.digest()
    print '  hash algorithm: %s' % hashalg
    if showdigest:
        print '  %s digest: \n%s' % (hashalg, base64.encodestring(dgst))

    test(dsa, dgst)
    #    test_asn1(dsa, dgst)
    test_speed(dsa, dgst)
    Rand.save_file('randpool.dat')
コード例 #10
0
ファイル: dsa_bench.py プロジェクト: 0xkag/M2Crypto
def main(keylen, hashalg):
    global dsa, dgst     # this exists ONLY for speed testing
    
    Rand.load_file('randpool.dat', -1) 
        
    pvtkeyfilename = 'DSA%dpvtkey.pem' % (keylen)
    pubkeyfilename = 'DSA%dpubkey.pem' % (keylen)  
    
    if makenewkey:
        print '  making and saving a new key'
        dsa = DSA.gen_params(keylen)
        dsa.gen_key()
        dsa.save_key(pvtkeyfilename, None )  # no pswd callback
        dsa.save_pub_key(pubkeyfilename)
    else:
        print '  loading an existing key'
        dsa = DSA.load_key(pvtkeyfilename)
    print '  dsa key length:', len(dsa)
    
    if not dsa.check_key():
        raise 'key is not initialised'
        
    if showpubkey:
        dsa_pub = dsa.pub
        pub_pem = base64.encodestring(dsa_pub)
        print '  PEM public key is: \n',pub_pem

    # since we are testing signing and verification, let's not 
    # be fussy about the digest.  Just make one.
    md = EVP.MessageDigest(hashalg)
    md.update('can you spell subliminal channel?')
    dgst = md.digest()
    print '  hash algorithm: %s' % hashalg
    if showdigest:
        print '  %s digest: \n%s' % (hashalg, base64.encodestring(dgst))
    
    test(dsa, dgst)
#    test_asn1(dsa, dgst)
    test_speed(dsa, dgst)
    Rand.save_file('randpool.dat')
コード例 #11
0
    def generate_keypair(self, password=None):
        ''' Generate a 1024 bit DSA key.  Someday they will be password
        protected.
        returns public key, private key '''

        dsa = DSA.gen_params(1024, os.urandom)

        mem_pub = BIO.MemoryBuffer()
        mem_private = BIO.MemoryBuffer()

        dsa.gen_key()
        if password is None:
            dsa.save_key_bio(mem_private, cipher=None)
        else:
            dsa.save_key_bio(mem_private, callback=lambda _: password)

        private_key = mem_private.getvalue()

        dsa.save_pub_key_bio(mem_pub)

        public_key = self._pubkey_from_private(mem_pub.getvalue())

        return public_key, private_key
コード例 #12
0
ファイル: m2crypto_test.py プロジェクト: kichkasch/ioids
#!/usr/bin/python

from M2Crypto import DSA

dsainstance = DSA.gen_params(512)

print dsainstance