Interface VAUProtocolCrypto

    • Method Detail

      • now

        java.time.LocalDateTime now()
      • hash

        byte[] hash​(byte[] in)
      • ECKA

        byte[] ECKA​(java.security.PrivateKey prk,
                    java.security.PublicKey puk)
             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • HKDF

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

        byte[] HKDF​(byte[] ikm,
                    byte[] info,
                    int length)
             throws java.lang.IllegalArgumentException,
                    org.bouncycastle.crypto.DataLengthException
        Throws:
        java.lang.IllegalArgumentException
        org.bouncycastle.crypto.DataLengthException
      • signRSASSA_PSS

        byte[] signRSASSA_PSS​(byte[] message)
                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • verify

        boolean verify​(byte[] message,
                       byte[] signatureBytes,
                       java.security.PublicKey puk)
      • signECDSA

        byte[] signECDSA​(byte[] message)
                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • generateECCKeyPair

        java.security.KeyPair generateECCKeyPair()
      • eccPublicKeyFromBytes

        java.security.PublicKey eccPublicKeyFromBytes​(byte[] pubKey)
      • getOcspResponse

        org.bouncycastle.cert.ocsp.OCSPResp getOcspResponse()
      • getEECertificate

        java.security.cert.X509Certificate getEECertificate()
      • isECCIdentity

        boolean isECCIdentity()
      • canProvideOcspResponse

        boolean canProvideOcspResponse()
      • encrypt_AESGCM

        byte[] encrypt_AESGCM​(byte[] encoded,
                              byte[] symKey,
                              long counter)
                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • decrypt_AESGCM

        byte[] decrypt_AESGCM​(byte[] enc,
                              byte[] symKey,
                              long counter)
                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • validateAuthorizationAssertion

        void validateAuthorizationAssertion​(VAUProtocolSession vauProtocolSession,
                                            java.lang.String authorizationAssertionStr)
        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.

        Parameters:
        vauProtocolSession -
        authorizationAssertionStr - base64 encoded
      • checkServerCertificate

        void checkServerCertificate​(java.security.cert.X509Certificate cert)
      • performOcspCheckForCertificate

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

        void performTslCheckForCertificate​(java.security.cert.X509Certificate cert)
                                    throws java.lang.Exception
        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
        Parameters:
        cert - Das zu prüfende Zertifikat
        Throws:
        java.lang.Exception - Im Falle einer fehlgeschlagenen oder fehlerhaften TSL-Überprüfung