<?xml version="1.0" encoding="utf8"?>

<plugin type="crypttoken" name="ohbci" device="file" >
  <version>0.1.0</version>
  <author>Martin Preuss (martin@libchipcard.de)</author>
  <short>OpenHBCI Keyfile Medium</short>

  <descr>
    This plugins provides support for keyfiles created with OpenHBCI1
    and OpenHBCI2.

    <text format="html" >
      <p>
        This plugin supports key files created with <b>OpenHBCI</b> or
        <b>OpenHBCI2</b> in <b>RDH</b> mode.  The file is encrypted
        with a password using the 3DES algorithm and it stores the
        private and public RSA keys.
      </p>
      <p>
        This plugin automatically detects the version of the key file
        upon loading and uses a backward-compatible format when
        writing the file.  As a result, the key file can still be used
        by OpenHBCI and OpenHBCI2 in parallel to AqBanking/AqHBCI.
      </p>
    </text>

    <text format="html" lang="de" >
      <p>
        Diese Erweiterung unterstuetzt Schluesseldateien die mit
        <b>OpenHBCI</b> oder <b>OpenHBCI2</b> im <b>RDH-Modus</b>
        erstellt wurden. Die Datei wird mit einem Passwort mit dem 
        3-Key-Triple-DES Algorithmus verschluesselt und speichert private
        und oeffentlich RSA-Schluessel.
      </p>
      <p>
        Dabei wird die Version der OpenHBCI-Schluesseldatei beim Laden 
        automatisch erkannt und beim Speichern ebenfalls verwendet.
        Dadurch bleibt die geschriebene Schluesseldatei weiterhin mit aelteren
        OpenHBCI1- oder OpenHBCI2-basierten Programmen lesbar.
      </p>
    </text>

  </descr>

  <crypttokens>
    <crypttoken typeName="ohbci" subTypeName="rdh1">
  
      <flags>
        <flag>manages_signseq</flag>
        <flag>predef_context_only</flag>
      </flags>
  
      <signinfos>
        <signinfo>
          <id>1</id>
          <hashalgo>any</hashalgo>
          <paddalgo>any</paddalgo>
        </signinfo>
      </signinfos>
      
      <cryptinfos>
        <cryptinfo>
          <id>1</id>
          <cryptalgo>any</cryptalgo>
          <paddalgo>any</paddalgo>
        </cryptinfo>
      </cryptinfos>

      <authinfos>
        <authinfo>
          <id>1</id>
          <hashalgo>any</hashalgo>
          <paddalgo>any</paddalgo>
        </authinfo>
      </authinfos>
      
      <keyinfos>
        <keyinfo>
          <keyId>1</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Local Sign Key</keyDescription>
          <keyFlags>
            <flag>canSign</flag>
            <flag>canVerify</flag>
            <flag>hasSignSeq</flag>
          </keyFlags>
        </keyinfo>
  
        <keyinfo>
          <keyId>2</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Local Crypt Key</keyDescription>
          <keyFlags>
            <flag>canEncrypt</flag>
            <flag>canDecrypt</flag>
          </keyFlags>
        </keyinfo>
  
        <keyinfo>
          <keyId>3</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Remote Sign Key</keyDescription>
          <keyFlags>
            <flag>canVerify</flag>
          </keyFlags>
        </keyinfo>
  
        <keyinfo>
          <keyId>4</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Remote Crypt Key</keyDescription>
          <keyFlags>
            <flag>canEncrypt</flag>
            <flag>canDecrypt</flag>
          </keyFlags>
        </keyinfo>

        <keyinfo>
          <keyId>5</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Local Auth Key</keyDescription>
          <keyFlags>
            <flag>canSign</flag>
            <flag>canVerify</flag>
            <flag>hasSignSeq</flag>
          </keyFlags>
        </keyinfo>

        <keyinfo>
          <keyId>6</keyId>
          <keySize>768</keySize>
          <minKeySize>768</minKeySize>
          <maxKeySize>2048</maxKeySize>
          <chunksize>96</chunksize>
          <cryptalgo>rsa</cryptalgo>
          <keyDescription>Remote Auth Key</keyDescription>
          <keyFlags>
            <flag>canVerify</flag>
          </keyFlags>
        </keyinfo>
        
      </keyinfos>
  
      <contexts>

        <context>
          <id>1</id>
          <contextType>rsa</contextType>
          <description>Context for operation with RSA keys</description>
          
          <signkeyinfo id="1" />
          <verifykeyinfo id="3" />
          <signinfo id="1" />
  
          <encryptKeyInfo id="4" />
          <decryptKeyInfo id="2" />
          <cryptinfo id="1" />

          <localAuthKeyInfo id="5" />
          <remoteAuthKeyInfo id="6" />
          <authinfo id="1" />
          
        </context>

      </contexts>
      
    </crypttoken>
  </crypttokens>
  
  
</plugin>


