Class VAUProtocolCryptoImpl

    • Constructor Detail

      • VAUProtocolCryptoImpl

        public VAUProtocolCryptoImpl​(boolean ecc)
      • VAUProtocolCryptoImpl

        public VAUProtocolCryptoImpl()
      • VAUProtocolCryptoImpl

        public VAUProtocolCryptoImpl​(boolean ecc,
                                     Identity eeIdentity)
      • VAUProtocolCryptoImpl

        public VAUProtocolCryptoImpl​(boolean ecc,
                                     Identity eeIdentity,
                                     java.security.cert.X509Certificate caCertificate,
                                     Identity ocspSignerIdentity)
      • VAUProtocolCryptoImpl

        public VAUProtocolCryptoImpl​(boolean doValidateAuthorizationAssertion,
                                     boolean ecc,
                                     Identity eeIdentity,
                                     java.security.cert.X509Certificate caCertificate,
                                     Identity ocspSignerIdentity)
    • Method Detail

      • ECKA

        public byte[] ECKA​(java.security.PrivateKey prk,
                           java.security.PublicKey puk)
                    throws java.lang.Exception
        Specified by:
        ECKA in interface VAUProtocolCrypto
        Throws:
        java.lang.Exception
      • HKDF

        public byte[] HKDF​(byte[] ikm,
                           java.lang.String info,
                           int length)
                    throws java.lang.IllegalArgumentException,
                           org.bouncycastle.crypto.DataLengthException
        Specified by:
        HKDF in interface VAUProtocolCrypto
        Throws:
        java.lang.IllegalArgumentException
        org.bouncycastle.crypto.DataLengthException
      • HKDF

        public byte[] HKDF​(byte[] ikm,
                           byte[] info,
                           int length)
                    throws java.lang.IllegalArgumentException,
                           org.bouncycastle.crypto.DataLengthException
        Specified by:
        HKDF in interface VAUProtocolCrypto
        Throws:
        java.lang.IllegalArgumentException
        org.bouncycastle.crypto.DataLengthException
      • verify

        public boolean verify​(byte[] message,
                              byte[] signatureBytes,
                              java.security.PublicKey puk)
        Specified by:
        verify in interface VAUProtocolCrypto
      • signRSASSA_PSS

        public byte[] signRSASSA_PSS​(byte[] message)
                              throws java.lang.Exception
        Specified by:
        signRSASSA_PSS in interface VAUProtocolCrypto
        Throws:
        java.lang.Exception
      • signECDSA

        public byte[] signECDSA​(byte[] message)
                         throws java.lang.Exception
        Specified by:
        signECDSA in interface VAUProtocolCrypto
        Throws:
        java.lang.Exception
      • encrypt_AESGCM

        public byte[] encrypt_AESGCM​(byte[] plain,
                                     byte[] symKey,
                                     long counter)
                              throws java.lang.Exception
        Specified by:
        encrypt_AESGCM in interface VAUProtocolCrypto
        Throws:
        java.lang.Exception
      • decrypt_AESGCM

        public byte[] decrypt_AESGCM​(byte[] encrypted,
                                     byte[] symKey,
                                     long counter)
                              throws java.lang.Exception
        Specified by:
        decrypt_AESGCM in interface VAUProtocolCrypto
        Throws:
        java.lang.Exception
      • validateAuthorizationAssertion

        public void validateAuthorizationAssertion​(VAUProtocolSession vauProtocolSession,
                                                   java.lang.String authorizationAssertionStr)
        Description copied from interface: VAUProtocolCrypto
        Prüfungen gemäß den Vorgaben in [gemSpec_Dokumentenverwaltung]

        A_17387 - Komponente ePA-Dokumentenverwaltung – Authorization Assertion-Validierung Die Komponente ePA-Dokumentenverwaltung MUSS sicherstellen, dass Authorization Assertions nur akzeptiert werden, wenn das zugehörige Signaturzertifikat zeitlich gültig ist, nicht gesperrt wurde und nach dem Zertifikatsprofil C.FD.SIG auf die Identität der Komponente Autorisierung ausgestellt wurde.

        A_14633 - Komponente ePA-Dokumentenverwaltung – Vermittlung der Verbindung zwischen Client und Verarbeitungskontext Das Kontextmanagement der Komponente ePA-Dokumentenverwaltung MUSS die Verbindung zwischen Client, d.h. dem ePA-Modul Frontend des Versicherten bzw. dem Fachmodul ePA oder Fachmodul ePA KTR-Consumer, und Verarbeitungskontext vermitteln und dabei • die Base64-dekodierte Authorization Assertion der VAUClientHello-Nachricht auf Gültigkeit gemäß Anforderung A_13690 sowie auf den gültigen Berechtigungstyp (AuthorizationType = "DOCUMENT_AUTHORIZATION") prüfen und bei ungültiger Authorization Assertion den Verbindungsaufbau abbrechen und mit dem HTTP-Fehler 403 antworten, • den Record Identifier des Verarbeitungskontextes über den Wert des Attributs Resource ID aus der Authorization Assertion der VAUClientHello-Nachricht ermitteln, • für Clients vom Typ ePA-Modul Frontend des Versicherten die Verbindung auf der Grundlage des vom Zugangsgateway gesetzten HTTP Header-Feldes Session registrieren, • für Clients vom Typ Fachmodul ePA die Verbindung auf Grundlage der TLS-Sitzung registrieren, • während der Dauer der Sitzung alle eingehenden Requests auf der Grundlage der registrierten Verbindung an den Zielverarbeitungskontext weiterleiten sowie • nach dem Ende der Sitzung, aufgrund eines Timeouts bzw. aufgrund einer Beendigung durch den Nutzer, die Registrierung der Verbindung löschen.

        Specified by:
        validateAuthorizationAssertion in interface VAUProtocolCrypto
        authorizationAssertionStr - base64 encoded
      • performOcspCheckForCertificate

        public void performOcspCheckForCertificate​(java.security.cert.X509Certificate cert)
                                            throws java.lang.Exception
        Description copied from interface: VAUProtocolCrypto
        Führt eine OCSP-Überprüfung für das vorliegende Zertifikat durch. Im Fehlerfall wird eine Exception geworfen.
        Specified by:
        performOcspCheckForCertificate in interface VAUProtocolCrypto
        Parameters:
        cert - Das zu prüfende Zertifikat
        Throws:
        java.lang.Exception - Im Falle einer fehlgeschlagenen oder fehlerhaften OCSP-Überprüfung
      • performTslCheckForCertificate

        public void performTslCheckForCertificate​(java.security.cert.X509Certificate cert)
                                           throws java.lang.Exception
        Description copied from interface: VAUProtocolCrypto
        Führt eine TSL-Überprüfung für das vorliegende Zertifikat durch. Im Fehlerfall wird eine Exception geworfen. Die Prüfung erfolgt analog zu A_15873 Punkt 2
        Specified by:
        performTslCheckForCertificate in interface VAUProtocolCrypto
        Parameters:
        cert - Das zu prüfende Zertifikat
        Throws:
        java.lang.Exception - Im Falle einer fehlgeschlagenen oder fehlerhaften TSL-Überprüfung