Tamam, bu, "Nereden başlayacağına dair hiçbir fikrim yok" sorularının bir diğeridir, bu yüzden umarım cevabı basittir. Ancak, neyi arayacağımı gerçekten bilmiyorum ve şimdiye kadar yaptığım girişimler çok fazla kullanılmadı.OpenSAML ile kullanmak için özel anahtar nasıl okunur?
Özel (şu anda disk) bir dosyadan özel bir anahtar okumak istiyorum. Nihayetinde anahtar bir veritabanında yer alacaktır, ancak bu an için yeterince iyi olacaktır ve bu farkın anahtar malzemenin ayrıştırılması üzerinde gerçek bir dayanağı olmamalıdır. Anahtarın genel bölümünü tutan (hata ayıklayıcı tarafından onaylanmış) bir Credential
örneği oluşturabildim, ancak özel bölümü nasıl okuyacağımı anlayamıyorum. . Gibi anahtar çifti oluşturulan:
openssl genrsa 512 > d:\host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key d:\host.key > d:\host.cert
(Evet, 512 bitlik RSA anahtarları uzun zaman önce kırılmış olduğunu biliyoruz API işe almaya çalışırken için, Ancak, ben sistemi tüketmek için hiçbir neden görmüyorum gereksiz entropi kaynağı)
kod şimdiye kadar geçerli:.
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;
}
Ama nasıl credential
özel anahtar kısmına dosyayı host.key
okuyoruz, bu yüzden kullanabilirsinizoluşturulanörneği veri imzalamak için?
Evet, BasicX509Credential OpenSAML dan, yani gözetimi üzgünüm. Bunu kesinlikle deneyeceğim. Ve evet, 512 bit RSA anahtarlarının herhangi bir şekilde güvenli olmadığını bildiğimi, ancak bu özel kurulumun * herşeyin işe yaramaya çalıştığı için kesinlikle * olduğunu biliyorum, bu yüzden anahtar uzunluğu bir sorun değil. –
Bir çekicilik gibi çalışır gibi görünüyor, çok teşekkür ederim! Tabii ki, imzalama kodum bozuk görünüyor, ancak en azından hata ayıklayıcısına göre, diskteki iki dosyadan uygun bir 'Kimlik Bilgisi 'alıyorum. Tur ile birlikte ... –
Teşekkür ederim. Windows'da < and > yönlendirerek gizemli sorunları yaşadım, bu yüzden onları -in ve -out anahtarlarıyla değiştirmek isteyebilirsiniz. –