2016-06-25 9 views
5

मैं Google ऐप इंजन (जीएई) पायथन 2.7 रनटाइम के भीतर काम कर रहा हूं।क्या मैं पूरी तरह से पायथन में X509 प्रमाण पत्र पर हस्ताक्षर कर सकता हूं?

मैं संकेत की जरूरत है (और संभवत: यह भी उत्पन्न) एक X509 प्रमाणपत्र (.CSR)

मैं कई guides, कि PyOpenSSL पर भरोसा मिल गया।

जैसा कि मैं इसे समझता हूं, PyOpenSSL ओपनएसएसएल के आसपास रैपर है और ऐप इंजन में उपलब्ध नहीं है।
Pycrypto उपलब्ध है, लेकिन X509 के लिए स्पष्ट पूर्व-निर्मित हस्ताक्षर विधि नहीं है।

मैं केवल python का उपयोग कर X509 .csr पर हस्ताक्षर कैसे कर सकता हूं?

+1

https://www.dlitz.net/software/pycrypto/api/current/Crypto.Signature.PKCS1_v1_5-module.html आप जो खोज रहे हैं वह हो सकता है? ... मुझे यकीन नहीं है कि यह x509 जैसा ही है ... लेकिन ऐसा लगता है कि कार्यान्वयन चश्मा सार्वजनिक रूप से उपलब्ध हैं ताकि आप इसे कार्यान्वित कर सकें ... लेकिन यह दर्दनाक होगा –

+0

क्या इससे आपको किसी भी तरह से मदद मिलती है? http://stackoverflow.com/questions/23103878/sign-csr-from-client-using-ca-root-certificate-in-python –

+1

पायथन गो लैंग पर्यावरण का समर्थन करता है और आप एक मॉड्यूल बना सकते हैं जो https: // golang का उपयोग करता है .org/pkg/crypto/x509/- और इसे REST API के माध्यम से कॉल करें। –

उत्तर

2

मैं अजगर में एक X509 प्रमाणपत्र पूरी तरह से पंजीकरण कर सकता है?

लगभग निश्चित रूप से, लेकिन मुझे नहीं लगता कि कोई मौजूदा शुद्ध पायथन कार्यान्वयन उपलब्ध है। निकटतम मुझे मिल सकता है oscrypto, लेकिन X509 प्रमाणपत्र पर हस्ताक्षर करने में सक्षम होने पर ctypes मॉड्यूल उपलब्ध होने पर निर्भर करता है।

लेखक ने certbuilder नामक एक मॉड्यूल भी लिखा है, जो X.50 9 प्रमाणपत्रों को उत्पन्न करने और हस्ताक्षर करने के लिए "पायथन लाइब्रेरी" होने का दावा करता है, लेकिन यह oscrypto मॉड्यूल पर निर्भर करता है।

हालांकि, असली सवाल अधिक की तरह लगता है ...

मैं एक गूगल एप इंजन पायथन स्टैंडर्ड पर्यावरण पर एक X509 प्रमाण पत्र पर हस्ताक्षर कर सकते हैं?

इस मामले में, oscrypto मॉड्यूल शायद मदद नहीं करेगा, के बाद से, डॉक्स के अनुसार, पर्यावरण ctypes मॉड्यूल के उपयोग की अनुमति नहीं देता है।

आप PyCrypto मॉड्यूल के लिए उपयोग किया करते हैं, और यद्यपि वहाँ है इसे का उपयोग एक X509 प्रमाण पत्र पढ़ने के a Python example, और एक X509 प्रमाणपत्र सत्यापित करने का एक C++ example, पायथन बाइंडिंग एन्कोडिंग और डिकोडिंग के लिए पूर्ण समर्थन है लगता नहीं है ASN.1। आप PyCrypto को asn1crypto के साथ oscrypto के रूप में एक ही लेखक द्वारा पूर्ण ASN.1 समर्थन के लिए गठबंधन करने में सक्षम हो सकते हैं।

इन समाधानों में से कोई भी किसी काम के हैं, तो या तो एक GAE Python Flexible Environment या एक GAE Custom Runtime आप PyOpenSSL पैकेज स्थापित करने देने के लिए चाहिए, लेकिन आप पता लगाने के लिए उनके तकनीकी सहायता टीम से संपर्क करना होगा।

+1

ओएसक्रिप्टो एन्क्रिप्शन, डिक्रिप्शन, हस्ताक्षर और सत्यापन के लिए ऑपरेटिंग सिस्टम की क्रिप्टो लाइब्रेरी को कॉल करने के लिए या तो सीटीपीएस या सीएफआई का उपयोग करेगा। यह शुद्ध-पायथन क्रिप्टोग्राफिक प्राइमेटिव प्रदान नहीं करता है। – wbond

+0

@wbond यह असंभव लगता है कि यह X509 पर हस्ताक्षर करने के लिए शुद्ध पायथन कार्यान्वयन प्रदान करेगा, लेकिन पुष्टि के लिए धन्यवाद। जवाब अद्यतन किया है। – Aya

2

मैं एक समाधान पाया है हो सकता है:

Cryptography.io पूरी तरह से अजगर आधारित है और यहां तक ​​कि कैसे स्वयं एक प्रमाणपत्र हस्ताक्षर करने के लिए पर एक ट्यूटोरियल प्रदान करता है।

अन्य उत्तरों सुनने के लिए खुश।

+0

जैसे ही मैं गहरी खुदाई करता हूं .. ऐसा लगता है कि वे ओपनएसएसएल पर बैकएंड के रूप में भरोसा करते हैं। मैं इस जवाब को यहां एक ब्रेडक्रम के रूप में छोड़ दूंगा, लेकिन वर्तमान में ऐसा लगता है कि यह काम नहीं करेगा। –

+0

अधिक ब्रेडक्रंब - ऐसा लगता है कि एम 2 क्रिप्टो इसे कर सकता है, लेकिन मुझे यकीन नहीं है कि यह ओपनएसएसएल पर निर्भर करता है https://gist.github.com/eskil/2338529 –

+1

M2Crypto ओपनएसएसएल के लिए सबसे पूर्ण पायथन रैपर है, इसलिए नहीं - वह openssl पर भी भरोसा करते हैं। मैं वास्तव में नहीं सोचता हूं कि दुनिया में इतनी पागल आदमी मौजूद है, जो पोर्ट को शुद्ध पायथन में खुलता है, कोई समझ नहीं देख सकता है। आपके मामले में, आप सामान्य होस्ट पर प्रमाण चिह्न सेवा बना सकते हैं और GAE – Reishin

1

यह सीधा जवाब नहीं होगा, क्योंकि मैं कभी भी सी और साइथन का उपयोग नहीं करता, लेकिन हो सकता है कि इस कार्य के लिए कुछ सी लाइब्रेरी का उपयोग करना संभव हो।

Cython site से

:

यह सब Cython बाहरी सी पुस्तकालयों लपेटकर, मौजूदा अनुप्रयोगों में CPython एम्बेड करने के लिए आदर्श भाषा बनाता है, और तेजी से सी मॉड्यूल है कि अजगर कोड के निष्पादन में तेजी लाने के लिए।

सरल और नहीं सबसे अच्छा समाधान नहीं की तरह लगता है, लेकिन जो जानते हैं :)

+0

से उसे उपयोग कर सकते हैं दुर्भाग्यवश, एपेंगिन को पाइथन, कोई सी कोड में सभी कोड लिखे जाने की आवश्यकता है। –

संबंधित मुद्दे