public class Cryptography
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
createPKCS10(java.lang.String subject,
java.security.PublicKey publickey,
java.security.PrivateKey privatekey)
Erstellt einen PKCS#10-Antrag.
|
static java.lang.String |
createPKCS10(java.lang.String subject,
java.security.PublicKey publickey,
java.security.PrivateKey privatekey,
java.lang.String provider)
Erstellt einen neuen PKCS#10-Antrag und liefert diesen im PEM-Format.
|
static java.lang.String |
createPKCS7Encrypted(byte[] data,
java.security.cert.X509Certificate[] certs)
Erstellt einen PKCS#7-Container, der die Daten aus
data
mit allen öffentlichen Schlüsseln aus den Zertifikaten
certs verschlüsselt. |
static java.lang.String |
createPKCS7Signed(byte[] text,
java.security.PrivateKey privatekey,
java.security.cert.X509Certificate certificate)
Erstellt ein PKCS#7 Container mit einer losglösten (detached) Signatur
über
text . |
static byte[] |
decryptPKCS7(java.lang.String base64,
java.security.cert.X509Certificate cert,
java.security.PrivateKey key)
Entschlüsselung mit dem Standardprovider
SunJCE . |
static byte[] |
decryptPKCS7(java.lang.String base64,
java.security.cert.X509Certificate cert,
java.security.PrivateKey key,
java.lang.String provider)
Entschlüsselt die in einen PKCS#7-Container eingebetteten verschlüsselten
Daten.
|
static java.security.cert.X509Certificate |
getCertificateFromPEM(java.lang.String pem)
Erstellt ein
X509Certificate -Objekt aus einem PEM-Zertifikat. |
static java.security.cert.X509Certificate |
getFirstCertificateWithKeyFormPKCS12(java.lang.String filename,
java.lang.String password)
Liefert das erste Zertifikat aus einer PKCS#12-Datei, zu dem ein
privater Schlüssel existiert.
|
static java.security.PrivateKey |
getFirstKeyFormPKCS12(java.lang.String filename,
java.lang.String password)
Liefert den ersten privaten Schlüssel, der in einer PKCS#12-Struktur
gefunden wird.
|
static java.lang.String |
getPEMFromCertificate(java.security.cert.X509Certificate cert)
Wandelt ein Zertifikatobjekt in das PEM-Format um.
|
static java.security.KeyPair |
getPrivateKey(byte[] key)
Wandelt einen privaten Schlüssel in ein Java-Object um.
|
static java.lang.String |
sha1(byte[] input)
Kalkuliert einen SHA1 Hash-Wert für
input . |
static java.lang.String |
sha1(byte[] input,
java.lang.String bytesSeparator,
boolean upperCase)
Kalkuliert einen SHA1 Hash-Wert für
input und liefert
diesen in angegebener Formatiertung. |
public static java.lang.String createPKCS10(java.lang.String subject, java.security.PublicKey publickey, java.security.PrivateKey privatekey) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, org.bouncycastle.operator.OperatorCreationException
subject
- Subject DNpublickey
- Öffentlicher Schlüsselprivatekey
- Privater Schlüsseljava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.security.NoSuchProviderException
- Fehlerweiterleitungjava.security.InvalidKeyException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungjava.security.SignatureException
- Fehlerweiterleitungorg.bouncycastle.operator.OperatorCreationException
- FehlerweiterleitungcreatePKCS10(java.lang.String, java.security.PublicKey, java.security.PrivateKey, java.lang.String)
public static java.lang.String createPKCS10(java.lang.String subject, java.security.PublicKey publickey, java.security.PrivateKey privatekey, java.lang.String provider) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, org.bouncycastle.operator.OperatorCreationException
DFNCERTPublic
als Parameter
übergeben werden.
Die Selbstsignatur des Antrags wird mit SHA256withRSA
erstellt. Wenn SHA256withRSA
nicht vom Provider unterstützt
wird, wird SHA1withRSA
verwendet.subject
- Subject DNpublickey
- Öffentlicher Schlüsselprivatekey
- Privater Schlüsselprovider
- Provider für PKCS#10-Signatur, null für Standardjava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.security.NoSuchProviderException
- Fehlerweiterleitungjava.security.InvalidKeyException
- Fehlerweiterleitungjava.security.SignatureException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungorg.bouncycastle.operator.OperatorCreationException
- Fehlerweiterleitungpublic static java.lang.String sha1(byte[] input) throws java.security.NoSuchAlgorithmException
input
. Liefert den Wert
als hexadezimalen String in Kleinbuchstaben.input
- Eingabedatenjava.security.NoSuchAlgorithmException
- Fehlerweiterleitungpublic static java.lang.String sha1(byte[] input, java.lang.String bytesSeparator, boolean upperCase) throws java.security.NoSuchAlgorithmException
input
und liefert
diesen in angegebener Formatiertung.input
- EingabedatenbytesSeparator
- Delimiter zwischen einzelnen Bytes (z.B. ":")upperCase
- Großbuchstaben?java.security.NoSuchAlgorithmException
- Fehlerweiterleitungpublic static java.lang.String createPKCS7Signed(byte[] text, java.security.PrivateKey privatekey, java.security.cert.X509Certificate certificate) throws java.security.NoSuchAlgorithmException, java.security.cert.CertStoreException, org.bouncycastle.cms.CMSException, java.security.NoSuchProviderException, java.security.InvalidAlgorithmParameterException, java.io.IOException, org.bouncycastle.operator.OperatorCreationException, java.security.cert.CertificateEncodingException
text
. Dabei wird der angegebene private Schlüssel
privatekey
verwendet und das zugehörige Zertifikat
certificate
als Unterzeichner-Zertifikat mit in die
PKCS#7-Struktur eingebunden. Das Ergebnis wird im PEM-Format geliefert.text
- Zu signierende Datenprivatekey
- Unterschrift Privater Schlüsselcertificate
- Unterschrift Zertifikatjava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.security.cert.CertStoreException
- Fehlerweiterleitungorg.bouncycastle.cms.CMSException
- Fehlerweiterleitungjava.security.NoSuchProviderException
- Fehlerweiterleitungjava.security.InvalidAlgorithmParameterException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungorg.bouncycastle.operator.OperatorCreationException
- Fehlerweiterleitungjava.security.cert.CertificateEncodingException
- Fehlerweiterleitungpublic static java.lang.String createPKCS7Encrypted(byte[] data, java.security.cert.X509Certificate[] certs) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, org.bouncycastle.cms.CMSException, java.io.IOException, java.security.cert.CertificateEncodingException
data
mit allen öffentlichen Schlüsseln aus den Zertifikaten
certs
verschlüsselt.data
- Zu verschlüsselnde Datencerts
- Empfänger-Zertifikatejava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.security.NoSuchProviderException
- Fehlerweiterleitungorg.bouncycastle.cms.CMSException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungjava.security.cert.CertificateEncodingException
- Fehlerweiterleitungpublic static byte[] decryptPKCS7(java.lang.String base64, java.security.cert.X509Certificate cert, java.security.PrivateKey key) throws org.bouncycastle.cms.CMSException, java.lang.Exception
SunJCE
.base64
- PKCS#7-Struktur im PEM-Formatcert
- Entschlüsselungszertifikatkey
- Entschlüsselungsschlüsselorg.bouncycastle.cms.CMSException
- Fehlerweiterleitungjava.lang.Exception
decryptPKCS7(java.lang.String, java.security.cert.X509Certificate, java.security.PrivateKey, java.lang.String)
public static byte[] decryptPKCS7(java.lang.String base64, java.security.cert.X509Certificate cert, java.security.PrivateKey key, java.lang.String provider) throws org.bouncycastle.cms.CMSException, java.lang.Exception
base64
- PKCS#7 in DER-Formatcert
- Zertifikat des Entschlüsselerskey
- PrivateKey des Entschlüsselersprovider
- Zu verwendender Kryptoprovider, z.B. "SunJCE"org.bouncycastle.cms.CMSException
- Fehlerweiterleitungjava.lang.Exception
public static java.security.cert.X509Certificate getCertificateFromPEM(java.lang.String pem) throws java.security.cert.CertificateException, java.io.IOException
X509Certificate
-Objekt aus einem PEM-Zertifikat.
Die Eingabe muss im PEM-Format mit Header (BEGIN CERTIFICATE) und
Footer (END CERTIFICATE) erfolgen.pem
- Zertifikat im PEM-Formatjava.security.cert.CertificateException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungpublic static java.lang.String getPEMFromCertificate(java.security.cert.X509Certificate cert) throws java.io.IOException
cert
- Eingabezertifikatjava.io.IOException
- Fehlerweiterleitungpublic static java.security.KeyPair getPrivateKey(byte[] key) throws java.io.IOException
key
- Eingabe als Byte-Arrayjava.io.IOException
- Fehlerweiterleitungpublic static java.security.PrivateKey getFirstKeyFormPKCS12(java.lang.String filename, java.lang.String password) throws java.security.KeyStoreException, java.io.FileNotFoundException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.security.UnrecoverableKeyException
null
zurückgegeben.filename
- Dateiname der PKCS#12-Dateipassword
- Passwort der PKCS#12-Dateijava.security.KeyStoreException
- Fehlerweiterleitungjava.security.cert.CertificateException
- Fehlerweiterleitungjava.io.FileNotFoundException
- Fehlerweiterleitungjava.security.UnrecoverableKeyException
- Fehlerweiterleitungjava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.io.IOException
public static java.security.cert.X509Certificate getFirstCertificateWithKeyFormPKCS12(java.lang.String filename, java.lang.String password) throws java.security.KeyStoreException, java.io.FileNotFoundException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
filename
- Dateiname der PKCS#12-Dateipassword
- Passwort der PKCS#12-Dateijava.security.KeyStoreException
- Fehlerweiterleitungjava.io.FileNotFoundException
- Fehlerweiterleitungjava.io.IOException
- Fehlerweiterleitungjava.security.NoSuchAlgorithmException
- Fehlerweiterleitungjava.security.cert.CertificateException
- Fehlerweiterleitung