From: Loic Baron Date: Mon, 26 Aug 2013 16:28:18 +0000 (+0200) Subject: Generate public and private keys using sfa.trust.certificate library X-Git-Tag: myslice-0.2-1~41^2~1 X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=b9a4e61ff89fea70d31a96e3f8238150fc5201bd Generate public and private keys using sfa.trust.certificate library --- diff --git a/portal/urls.py b/portal/urls.py index 2887388a..2d870d53 100644 --- a/portal/urls.py +++ b/portal/urls.py @@ -47,7 +47,7 @@ urlpatterns = patterns('', url(r'^platforms/?$', PlatformsView.as_view(), name='platforms'), #url(r'^portal/platform/?$', PlatformView.platform_view(), name='platform'), url(r'^platform/(?P[\w\.]+)/?$', PlatformView.as_view(), name='platform'), - url(r'^acc_process/?$', views.acc_process), + url(r'^account/acc_process/?$', views.acc_process), url(r'^register/?$', views.register_4m_f4f), #url(r'^reg_process/?$', views.reg_4m_f4f_process), url(r'^contact/?$', views.contact), diff --git a/portal/views.py b/portal/views.py index c9ae046f..9699f0a5 100644 --- a/portal/views.py +++ b/portal/views.py @@ -640,35 +640,41 @@ def acc_process(request): get_user.save() return HttpResponse('Success: Password Changed!!') elif 'generate' in request.POST: - #import os - #from M2Crypto import Rand, RSA, BIO - - KEY_LENGTH = 2048 - - def blank_callback(): - "Replace the default dashes" - return - - # Random seed - Rand.rand_seed (os.urandom (KEY_LENGTH)) - # Generate key pair - key = RSA.gen_key (KEY_LENGTH, 65537, blank_callback) - # Create memory buffers - pri_mem = BIO.MemoryBuffer() - pub_mem = BIO.MemoryBuffer() - # Save keys to buffers - key.save_key_bio(pri_mem, None) - key.save_pub_key_bio(pub_mem) - - # Get keys - public_key = pub_mem.getvalue() - private_key = pri_mem.getvalue() + # Generate public and private keys using SFA Library + from sfa.trust.certificate import Keypair + k = Keypair(create=True) + public_key = k.get_pubkey_string() + private_key = k.as_pem() + +# DEPRECATED +# KEY_LENGTH = 2048 +# +# def blank_callback(): +# "Replace the default dashes" +# return +# +# # Random seed +# Rand.rand_seed (os.urandom (KEY_LENGTH)) +# # Generate key pair +# key = RSA.gen_key (KEY_LENGTH, 65537, blank_callback) +# # Create memory buffers +# pri_mem = BIO.MemoryBuffer() +# pub_mem = BIO.MemoryBuffer() +# # Save keys to buffers +# key.save_key_bio(pri_mem, None) +# key.save_pub_key_bio(pub_mem) +# +# # Get keys +# public_key = pub_mem.getvalue() +# private_key = pri_mem.getvalue() + private_key = ''.join(private_key.split()) + public_key = "ssh-rsa " + public_key # Saving to DB keypair = '{"user_public_key":"'+ public_key + '", "user_private_key":"'+ private_key + '"}' - keypair = re.sub("\r", "", keypair) - keypair = re.sub("\n", "\\n", keypair) - #keypair = keypair.rstrip('\r\n') - keypair = ''.join(keypair.split()) +# keypair = re.sub("\r", "", keypair) +# keypair = re.sub("\n", "\\n", keypair) +# #keypair = keypair.rstrip('\r\n') +# keypair = ''.join(keypair.split()) get_user.keypair = keypair get_user.save() return HttpResponse('Success: New Keypair Generated! %s' % keypair) @@ -728,35 +734,44 @@ def register_4m_f4f(request): #return HttpResponse("Email Already exists") #return render(request, 'register_4m_f4f.html') if 'generate' in request.POST['question']: - #import os - #from M2Crypto import Rand, RSA, BIO - - KEY_LENGTH = 2048 - - def blank_callback(): - "Replace the default dashes" - return - - # Random seed - Rand.rand_seed (os.urandom (KEY_LENGTH)) - # Generate key pair - key = RSA.gen_key (KEY_LENGTH, 65537, blank_callback) - # Create memory buffers - pri_mem = BIO.MemoryBuffer() - pub_mem = BIO.MemoryBuffer() - # Save keys to buffers - key.save_key_bio(pri_mem, None) - key.save_pub_key_bio(pub_mem) - # Get keys - public_key = pub_mem.getvalue() - private_key = pri_mem.getvalue() + # Generate public and private keys using SFA Library + from sfa.trust.certificate import Keypair + k = Keypair(create=True) + public_key = k.get_pubkey_string() + private_key = k.as_pem() + +# DEPRECATED +# #import os +# #from M2Crypto import Rand, RSA, BIO +# +# KEY_LENGTH = 2048 +# +# def blank_callback(): +# "Replace the default dashes" +# return +# +# # Random seed +# Rand.rand_seed (os.urandom (KEY_LENGTH)) +# # Generate key pair +# key = RSA.gen_key (KEY_LENGTH, 65537, blank_callback) +# # Create memory buffers +# pri_mem = BIO.MemoryBuffer() +# pub_mem = BIO.MemoryBuffer() +# # Save keys to buffers +# key.save_key_bio(pri_mem, None) +# key.save_pub_key_bio(pub_mem) +# # Get keys +# public_key = pub_mem.getvalue() +# private_key = pri_mem.getvalue() + + private_key = ''.join(private_key.split()) + public_key = "ssh-rsa " + public_key # Saving to DB keypair = '{"user_public_key":"'+ public_key + '", "user_private_key":"'+ private_key + '"}' - keypair = re.sub("\r", "", keypair) - keypair = re.sub("\n", "\\n", keypair) - #keypair = keypair.rstrip('\r\n') - keypair = ''.join(keypair.split()) - #return HttpResponse(keypair) +# keypair = re.sub("\r", "", keypair) +# keypair = re.sub("\n", "\\n", keypair) +# #keypair = keypair.rstrip('\r\n') +# keypair = ''.join(keypair.split()) else: up_file = request.FILES['user_public_key'] file_content = up_file.read()