AMETAS.data
Class AMETASCertificate

java.lang.Object
  extended byAMETAS.data.AMETASCertificate
All Implemented Interfaces:
java.security.Certificate

public class AMETASCertificate
extends java.lang.Object
implements java.security.Certificate

Repräsentiert ein Zertifikat.

Daten, die zu einem Zertifikat gehören:

Version Die Version des Formats
Seriennummer Fortlaufende Zahl
Signaturalgorithmus Algorithmus, der zum Signieren benutzt wird
Signatur Eigentliche Signatur
Aussteller (Issuer) Ersteller des Zertifikats
Gültigkeit Gültigkeitszeitraum
Schlüssel Öffentlicher Schlüssel der Identität

Das Zertifikat dient dazu, einen öffentlichen Schlüssel einem bestimmten Objekt/Subjekt zuzuordnen. Das Format ist AMETAS-spezifisch.


Constructor Summary
AMETASCertificate()
          Erzeugt ein neues Zertifikat.
AMETASCertificate(byte[] abyCertificate)
          Konstruktor für die Rekonstruktion eines Zertifikats.
AMETASCertificate(java.lang.String sSignaturAlg, AMETASIdentityID principal, AMETASIdentityID guarantor, java.security.PublicKey pubKey, java.util.Date dateValidityBegin, java.util.Date dateValidityEnd)
          Konstruktor, um ein neues Zertifikat zu erstellen.
 
Method Summary
 void decode(java.io.InputStream isData)
          Rekonstruieren des Zertifikats aus dem InputStream.
 void encode(java.io.OutputStream osCoded)
          Methode zum Schreiben des Zertifikats in ein Bytearray.
 byte[] encodeAndSign(AMETASSigner signer, java.lang.String sMantra)
          Methode zum Schreiben des Zertifikats in ein Bytearray.
 boolean equals(java.lang.Object obj)
          Vergleicht zwei Zertifikate.
 java.lang.String getFormat()
          Rückgabe des Strings AMETAS.
 java.security.Principal getGuarantor()
          Liefert den Zertifikatsaussteller.
 java.security.Principal getPrincipal()
          Liefert den Schlüsselinhaber.
 java.security.PublicKey getPublicKey()
          Liefert den öffentlichen Schlüssels, der zertifiziert werden soll.
 boolean isValid()
          Überprüft, ob das Zertifikat im Gültigkeitsbereich liegt.
 java.lang.String toString()
          Liefert einen String, der den Zertifikatsinhalt beschreibt.
 java.lang.String toString(boolean bDetailed)
          Liefert einen String, der den Zertifikatsinhalt beschreibt.
 void verify(java.security.PublicKey publickey)
          Überprüft, ob der öffentliche Schlüssel zum privaten Schlüssel gehört, mit dem das Zertifikat erstellt wurde.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AMETASCertificate

public AMETASCertificate()
Erzeugt ein neues Zertifikat. Wird benötigt, um mittels decode ein Zertifikat zu rekonstruieren.


AMETASCertificate

public AMETASCertificate(byte[] abyCertificate)
                  throws java.security.SignatureException
Konstruktor für die Rekonstruktion eines Zertifikats. Mit diesem Konstruktor lässt sich ein vorhandenes, als Bytearray vorliegendes Zertifikat rekonstruieren.

Parameters:
abyCertificate - Als Bytearray vorliegendes Zertifikat.
Throws:
java.security.SignatureException - wenn das Zertifikat ungültig ist oder nicht dem Standard entspricht.

AMETASCertificate

public AMETASCertificate(java.lang.String sSignaturAlg,
                         AMETASIdentityID principal,
                         AMETASIdentityID guarantor,
                         java.security.PublicKey pubKey,
                         java.util.Date dateValidityBegin,
                         java.util.Date dateValidityEnd)
Konstruktor, um ein neues Zertifikat zu erstellen.

Parameters:
sSignaturAlg - Signaturalgorithmus.
principal - Schlüsselinhaber.
guarantor - Aussteller des Zertifikats.
pubKey - Öffentlicher Schlüssel des Inhabers.
dateValidityBegin - Beginn der Gültigkeit des Zertifikats.
dateValidityEnd - Ende der Gültigkeit des Zertifikats.
Method Detail

getGuarantor

public java.security.Principal getGuarantor()
Liefert den Zertifikatsaussteller. Dies ist der Teilnehmer, der die Bindung zwischen dem Principal und seinem öffentlichen Schlüssel garantiert. Dies kann eine öffentliche Organisation sein. Bei AMETAS ist dies eine Untermenge der Stellen.

Specified by:
getGuarantor in interface java.security.Certificate
Returns:
Aussteller.

getPrincipal

public java.security.Principal getPrincipal()
Liefert den Schlüsselinhaber.

Specified by:
getPrincipal in interface java.security.Certificate
Returns:
Schlüsselinhaber.

getPublicKey

public java.security.PublicKey getPublicKey()
Liefert den öffentlichen Schlüssels, der zertifiziert werden soll.

Specified by:
getPublicKey in interface java.security.Certificate
Returns:
Öffentlicher Schlüssel.

encode

public void encode(java.io.OutputStream osCoded)
            throws java.io.IOException,
                   java.security.KeyException
Methode zum Schreiben des Zertifikats in ein Bytearray. Dieses Feld kann effizient gespeichert oder übertragen werden. Es existieren Methoden, um aus dem Array wieder ein Zertifikatsobjekt zu machen.

Specified by:
encode in interface java.security.Certificate
Parameters:
osCoded - Strom, in den das kodierte Zertifikat geschrieben wird.
Throws:
java.io.IOException - falls die Daten nicht in den Strom geschrieben werden konnten.
java.security.KeyException - falls die Daten, die zum Zertifikat gehören, nicht vorhanden sind.

encodeAndSign

public byte[] encodeAndSign(AMETASSigner signer,
                            java.lang.String sMantra)
                     throws java.security.KeyException,
                            java.security.SignatureException
Methode zum Schreiben des Zertifikats in ein Bytearray. Dieses Array kann effizient gespeichert oder übertragen werden. Es existieren Methoden, um aus dem Array wieder ein Zertifikatsobjekt zu machen. Es wird dabei mit dem privaten Schlüssel des Unterzeichners signiert.

Parameters:
signer - Unterzeichner, der das Zertifikat signiert.
sMantra - Mantra zum Freischalten des privaten Schlüssels.
Returns:
Zertifikat und Signatur in einem Bytearray.
Throws:
java.security.KeyException - falls die Daten, die zum Zertifikat gehören, nicht vorhanden sind.
java.security.SignatureException - falls die Signatur nicht erstellt werden konnte.

decode

public void decode(java.io.InputStream isData)
            throws java.security.KeyException,
                   java.io.IOException
Rekonstruieren des Zertifikats aus dem InputStream. Dieses Format muss dem Format der Methode encode entsprechen.

Specified by:
decode in interface java.security.Certificate
Parameters:
isData - Eingabestrom, aus dem das Zertifikat gelesen werden soll.
Throws:
java.security.KeyException - wenn die Daten fehlerhaft oder unvollständig sind.
java.io.IOException - wenn es Probleme beim Auslesen aus dem Strom gibt.

verify

public void verify(java.security.PublicKey publickey)
            throws java.security.SignatureException
Überprüft, ob der öffentliche Schlüssel zum privaten Schlüssel gehört, mit dem das Zertifikat erstellt wurde.

Parameters:
publickey - Öffentlicher Schlüssel.
Throws:
java.security.SignatureException - wenn ein Fehler beim Überprüfen auftrat.

isValid

public boolean isValid()
Überprüft, ob das Zertifikat im Gültigkeitsbereich liegt.

Returns:
true, wenn es gültig ist, sonst false.

getFormat

public java.lang.String getFormat()
Rückgabe des Strings AMETAS. Er beschreibt die Kodierungsmethode.

Specified by:
getFormat in interface java.security.Certificate
Returns:
AMETAS.

toString

public java.lang.String toString()
Liefert einen String, der den Zertifikatsinhalt beschreibt.

Returns:
Stringrepräsentation.

equals

public boolean equals(java.lang.Object obj)
Vergleicht zwei Zertifikate.

Parameters:
obj - Vergleichsobjekt.
Returns:
true, wenn das Objekt ein AMETAS-Zertifikat ist und die gleichen Daten enthält.

toString

public java.lang.String toString(boolean bDetailed)
Liefert einen String, der den Zertifikatsinhalt beschreibt.

Specified by:
toString in interface java.security.Certificate
Parameters:
bDetailed - wenn true, ist die Beschreibung detaillierter.
Returns:
Stringrepräsentation.