ठीक है, यह उन लोगों में से एक है "मेरे पास कोई वास्तविक विचार नहीं है कि प्रश्न कहां से शुरू करें", इसलिए उम्मीद है कि उत्तर सरल है। हालांकि, मुझे वास्तव में पता नहीं है कि क्या खोजना है, और मेरे प्रयासों ने अब तक बहुत अधिक उपयोग नहीं किया है।OpenSAML के साथ उपयोग के लिए एक निजी कुंजी कैसे पढ़ा जाए?
मैं एक (वर्तमान में ऑन-डिस्क) फ़ाइल से एक निजी कुंजी पढ़ना चाहता हूं। आखिरकार कुंजी डेटाबेस में रहती है, लेकिन यह इस पल के लिए काफी अच्छी होगी और उस अंतर में मुख्य सामग्री को पार्स करने पर कोई वास्तविक असर नहीं होना चाहिए। मैं Credential
उदाहरण बनाने में सक्षम हूं जो कुंजी का सार्वजनिक हिस्सा (डीबगर द्वारा पुष्टि) रखता है, लेकिन मुझे लगता है कि निजी भाग को कैसे पढ़ा जाए। के रूप में कुंजी युग्म उत्पन्न की गई:।
openssl genrsa 512 > d:\host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key d:\host.key > d:\host.cert
(हाँ, मुझे पता है कि 512 बिट RSA कुंजी बहुत पहले टूट गए हालांकि, काम करने के लिए एपीआई प्राप्त करने की कोशिश के लिए, मैं प्रणाली निकास का कोई कारण नहीं देखते हैं एन्ट्रापी की आपूर्ति बेकार में)
कोड इस प्रकार दूर है:।
import org.opensaml.xml.security.credential.Credential;
import org.opensaml.xml.security.x509.BasicX509Credential;
private Credential getSigningCredential()
throws java.security.cert.CertificateException, IOException {
BasicX509Credential credential = new BasicX509Credential();
credential.setUsageType(UsageType.SIGNING);
// read public key
InputStream inStream = new FileInputStream("d:\\host.cert");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
inStream.close();
credential.setEntityCertificate(cert);
// TODO: read private key
// done.
return credential;
}
लेकिन यह कैसे मैं credential
के निजी कुंजी भाग में फ़ाइल host.key
पढ़ते हैं, लेकिन तो मैं उपयोग कर सकते हैं उत्पन्नडेटा पर हस्ताक्षर करने के लिएउदाहरण?
हाँ, BasicX509Credential OpenSAML से है, कि निरीक्षण के बारे में खेद है। मैं निश्चित रूप से यह कोशिश करूँगा। और हाँ, मुझे पूरी तरह से पता है कि 512-बिट आरएसए कुंजी किसी भी माध्यम से सुरक्षित नहीं हैं, लेकिन यह विशेष सेटअप * सख्ती से * चीजों को काम करने की कोशिश करने के लिए * है, इसलिए मुख्य लंबाई एक गैर-मुद्दा है। –
एक आकर्षण की तरह काम करने लगता है, बहुत बहुत धन्यवाद! बेशक, मेरा हस्ताक्षर कोड टूटा हुआ प्रतीत होता है, लेकिन कम से कम डीबगर के अनुसार, मुझे डिस्क पर दो फाइलों से उचित 'प्रमाण पत्र' मिलता है। दौरे के साथ ... –
धन्यवाद। विंडोज़ में < and > को रीडायरेक्ट करने के साथ मुझे रहस्यमय परेशानी थी, इसलिए कोई उन्हें इन-आउट और आउट स्विच के साथ बदलना चाहता है। –