Class Api


  • public class Api
    extends Object
    Klasse zum Ver- und Entschlüsseln von Elementen in XML-Dateien.

    Elemente werden symmetrisch mit einem zufällig erzeugten Schlüssel verschlüsselt.

    Dieser Schlüsselt wird mit Hilfe eines asymmetrischen Schlüsselpaars ver- und entschlüsselt. Mit dem öffentlichen Schlüssel des Schlüsselpaars wird der symmetrische Schlüssel verschlüsselt und im XML-Dokument hinterlegt. Mit dem privaten Schlüssel des Schlüsselpaars kann der symmetrische Schlüssel anschließend entschlüsselt werden und mit diesem dann die verschlüsselten XML-Elemente.

    • Method Detail

      • encrypt

        public static void encrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   File keyfileName,
                                   List<String> tags,
                                   String encryptedKeyTag)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Verschlüsselt Elemente einer XML-Datei
        Parameters:
        xmlInFileName - Zu verschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        keyfileName - Datei des öffentlichen Schlüssels
        tags - Liste von Tags, die verschlüsselt werden sollen
        encryptedKeyTag - Tag, in dem der symmetrische Schlüssel gespeichert werden soll
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • encrypt

        public static void encrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   File keyfileName,
                                   List<String> tags)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Verschlüsselt Elemente einer XML-Datei, wobei der symmetrische Schlüssel im Tag "encryption" gespeichert wird.
        Parameters:
        xmlInFileName - Zu verschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        keyfileName - Datei des öffentlichen Schlüssels
        tags - Liste von Tags, die verschlüsselt werden sollen
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • encrypt

        public static void encrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   PublicKey publicKey,
                                   String publicKeyId,
                                   List<String> tags)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Verschlüsselt Elemente einer XML-Datei, wobei der symmetrische Schlüssel im Tag "encryption" gespeichert wird.
        Parameters:
        xmlInFileName - Zu verschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        publicKey - Öffentlicher Schlüssel
        publicKeyId - Schlüssel-Id, die im Keyinfo-Element im XML als Id des Schlüssels abgelegt wird.
        tags - Liste von Tags, die verschlüsselt werden sollen
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • encrypt

        public static void encrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   PublicKey publicKey,
                                   String publicKeyId,
                                   List<String> tags,
                                   String encryptedKeyTag)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Verschlüsselt Elemente einer XML-Datei.
        Parameters:
        xmlInFileName - Zu verschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        publicKey - Öffentlicher Schlüssel
        publicKeyId - Schlüssel-Id, die im Keyinfo-Element im XML als Id des Schlüssels abgelegt wird.
        tags - Liste von Tags, die verschlüsselt werden sollen
        encryptedKeyTag - Tag, in dem der symmetrische Schlüssel gespeichert werden soll
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • decrypt

        public static void decrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   File keyfileName,
                                   List<String> tags,
                                   String encryptedKeyTag)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Entschlüsselt Elemente einer XML-Datei
        Parameters:
        xmlInFileName - Zu entschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        keyfileName - Datei des privaten Schlüsels
        tags - Liste von Tags, die entschlüsselt werden sollen
        encryptedKeyTag - Tag, in dem der symmetrische Schlüssel abgelegt ist.
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • decrypt

        public static void decrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   File keyfileName,
                                   List<String> tags)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Entschlüsselt Elemente einer XML-Datei
        Parameters:
        xmlInFileName - Zu entschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        keyfileName - Datei des privaten Schlüsels
        tags - Liste von Tags, die entschlüsselt werden sollen
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • decrypt

        public static void decrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   PrivateKey privateKey,
                                   List<String> tags)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Entschlüsselt Elemente einer XML-Datei
        Parameters:
        xmlInFileName - Zu entschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        privateKey - Privater Schlüssel
        tags - Liste von Tags, die entschlüsselt werden sollen
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • decrypt

        public static void decrypt​(File xmlInFileName,
                                   File xmlOufFileName,
                                   PrivateKey privateKey,
                                   List<String> tags,
                                   String encryptedKeyTag)
                            throws InvalidKeyException,
                                   org.apache.xml.security.exceptions.Base64DecodingException,
                                   Exception
        Entschlüsselt Elemente einer XML-Datei
        Parameters:
        xmlInFileName - Zu entschlüsselnde Datei
        xmlOufFileName - Ausgabedatei oder -verzeichnis
        privateKey - Privater Schlüssel
        tags - Liste von Tags, die entschlüsselt werden sollen
        encryptedKeyTag - Tag, in dem der symmetrische Schlüssel abgelegt ist.
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • keygen

        public static void keygen​(File keyFilename)
                           throws InvalidKeyException,
                                  org.apache.xml.security.exceptions.Base64DecodingException,
                                  Exception
        Erzeugt ein Schlüsselpaar.
        Parameters:
        keyFilename - Name oder Verzeichnis des Schlüssels. Wenn es ein Verzeichnis oder der Wert null ist, wird ein key.pri und key.pub angelegt.
        Throws:
        InvalidKeyException - Exception die bei einem falschen Schlüssel auftreten kann
        org.apache.xml.security.exceptions.Base64DecodingException - Exception die bei einer falschen Encoding auftreten kann
        Exception - Exception die auftreten kann
      • getModulus

        public static String getModulus​(File publicKeyFile)
                                 throws org.iqtig.packer.shared.error.crypto.CryptoException
        Gibt den Modulus zum öffentlichen Schlüssel einer übergebenen Schlüssel-Datei zurück.
        Parameters:
        publicKeyFile - Datei, zu deren enthaltenem Schlüssel der Modulus zurückgegeben wird.
        Returns:
        Modulus base64-kodiert
        Throws:
        org.iqtig.packer.shared.error.crypto.CryptoException - Exception, die bei Fehlern beim Laden des öffentlichen Schlüssels auftreten kann.
      • keyHasBeenUsedForTagEncryption

        public static boolean keyHasBeenUsedForTagEncryption​(File xmlFile,
                                                             File publicKeyFile,
                                                             String tag)
                                                      throws org.iqtig.packer.shared.error.crypto.CryptoException,
                                                             org.apache.xml.security.exceptions.XMLSecurityException,
                                                             SAXException
        Methode gibt boolschen Wert zurück, der aussagt, ob das übergebene XML-Tag des übergebenen XML-Files mit dem öffentlichen Schlüssel des übergebenen Keyfiles verschlüsselt worden ist.
        Parameters:
        xmlFile - XML-File mit verschlüsselten Tags
        publicKeyFile - Datei mit öffentlichem Schlüssel, mit dem Tags des XML-Files potentiell verschlüsselt worden sind.
        tag - XML-Tag, das daraufhin geprüft wird, ob es mit dem öffentlichen Schlüssel verschlüsselt worden ist.
        Returns:
        true, falls XML-Tag mit öffentlichem Schlüssel verschlüsselt worden ist, false sonst.
        Throws:
        org.iqtig.packer.shared.error.crypto.CryptoException - Exception, die bei Fehlern beim Laden des öffentlichen Schlüssels auftreten kann.
        org.apache.xml.security.exceptions.XMLSecurityException - Exception, die beim Parsen der KeyInfo-Elemente auftreten kann.
        SAXException - Exception, die beim Parsen des Input-XML auftreten kann.