python


How use public key with pyOpenSSL for verify a signed message?


I try to use pyOpenSSL for signed a data, I create key pair (private and publique) and certificate.
I'm a beginner with this technology, I use OpenSSl, but if you have suggestions for generate a signed message with private and public key in python, I'm take !
I want to use RSA and DSA algorithm for my tests.
I find m2Crypto, pyCrypto and other. I do not know what is the best for this.
gnupg for python and pyOpenSSl are more recent visibly.
I used function for signed a message with my private key, and I verify the data.
But when I see the function for verify the signature, in parameters I need :
private key, signature, data and digest type.
I do not know where I am wrong in this code, I find some examples, but I do not understand how this can work because the first parameters for the verify function is a X509 object "certificate is a X509 instance corresponding to the private key which generated the signature." and the second is the signature generated with the private key..
This code work perfectly with the private key :
from OpenSSL import crypto
_k = crypto.PKey()
_cert = crypto.X509()
# Create keys
_k.generate_key(crypto.TYPE_RSA, 2048)
# Add argument for create certificate
_cert.gmtime_adj_notBefore(0)
_cert.gmtime_adj_notAfter(0*365*24*60*60) #10 years expiry date
_cert.set_pubkey(_k)
_cert.sign(_k, 'sha256')
# Create key's file
with open("public_key.pem",'w') as f:
f.write(crypto.dump_publickey(crypto.FILETYPE_PEM, _k))
with open("private_key.pem",'w') as f:
f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, _k))
with open("certificate.pem",'w') as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, _cert))
#-------------------------------------------------------------------------------
# Open key and load in var
with open("private_key.pem",'r') as f:
priv_key = crypto.load_privatekey(crypto.FILETYPE_PEM, f.read())
with open("public_key.pem",'r') as f:
pub_key = crypto.load_publickey(crypto.FILETYPE_PEM, f.read())
with open("certificate.pem",'r') as f:
cert = crypto.load_certificate(crypto.FILETYPE_PEM, f.read())
# sign message 'hello world' with private key and certificate
sign = crypto.sign(priv_key, "hello world", 'sha256')
print crypto.verify(cert, sign, "hello world", 'sha256')
So, my question is, how use the public key for verify the data ?
If Bob give a public key to alice, How it checks the message with this public key ?
You have a idea ?
Thanks a lot,
Romain

Related Links

Any way to optimize large input's memory usage in keras?
Python 2.7 MySQL-python Link Error
list of all classification algorithms
Unresolved imports in pydev eclipse on windows 10
Checking if first item of a list of list exists in first item of another list of list
Multiple LED at different time
Can I use Flask and flask-restul to return JSON to API calls but HTML to browsers?
Keras input dimension
Adding a loop to “digital root” function in Python3
How to use a linear index to access a 2D array in Python
Tflearn Custom Objective function
Text Classification - Label Pre Process [closed]
how to get matched substring list in a json-type string with python?
Lambda Expressions: Returning Multiple Values
Using CUDA8 in theano
matplotlib.widgets Button doesn't work inside a class

Categories

HOME
caching
vhdl
blockchain
puppet
label
heap-memory
java-home
codeblocks
google-spreadsheet-api
onenote-api
deeplearning4j
metronic
nixos
finite-group-theory
symfony2-easyadmin
cairo
redux-observable
anychart
atlassian-plugin-sdk
raphael
prediction
scalaz7
epicor
profile
http-method
katharsis
branch
google-api-dotnet-client
weinre
vertex-buffer
getjson
edb
openpgp
nunit-3.0
bigcartel
xamarin.uitest
freetts
flex4.5
onbackpressed
amazon-clouddrive
appstore-approval
webdatagrid
workflow-foundation-4.5
maintenance
jexl
cdk
unity3d-editor
communication-protocol
autoresize
festival
restivejs
sql-server-administration
gameanalytics
scriptlet
mpeg-4
anti-cheat
kendo-menu
built-in
mptcp
adobe-indesign
sqoop2
multipleselection
livechat
dalekjs
eclipse-classpath
voldemort
config-files
ksoap2
gamepad
facebook-sdk-3.1
phpsh
cosm
supersized
law-of-demeter
hobo
flash-cs5.5
hashalgorithm
objectbrowser
shared-objects
charts4j
gtk2hs
zend-form-element
symbol-server
getresource
recordset
task-management
pci-bus
hmacsha1
gears
weborb
interface-design

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App