M2Crpyto : sign/veify with openssl

import sys,os,commands,random
import sha
from M2Crypto import RSA
from time import *
#
PRIKEY='pri.pem'
PUBKEY='pub.pem'
CSR='csr.pem'
CERT='cert.pem'
SUBJECT="/CN=hdknr.com /OU=sys.hdknr.com /O=sys  /C=JP"
RAND='rand.txt'
#
def x(cmd):
    print "* Executing " + cmd
    print commands.getoutput(cmd)

def create_random():
    x( 'date | openssl dgst  > %s' % RAND )

def create_pri_key():
    x( 'openssl genrsa -rand %s -out %s' % (RAND,PRIKEY) )

def create_csr():
    x('openssl req -new -key %s -out %s -subj "%s" ' % (PRIKEY,CSR,SUBJECT))

def create_cert():
    x('openssl x509 -in %s -out %s -req -signkey %s' %(CSR,CERT,PRIKEY))

def create_pub_key():
    x('openssl x509 -pubkey -in %s > %s' %(CERT,PUBKEY))




#
def test():
    create_random()
    create_pri_key()
    create_csr()
    create_cert()
    create_pub_key()

    text=asctime(localtime())
    dig =sha.new(text).digest()

    pri =RSA.load_key(PRIKEY)
    pub =RSA.load_pub_key(PUBKEY)

    sig =pri.sign(dig)
    print pub.verify(dig,sig)

if __name__ == '__main__':
    test()

 

 

image

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中