To Do


To Do ticket for June 29 (2015):

TO DO:
  Functions for handling certificate command-line parameters to create certificate.
    Basic function (parameters)
    Function that handles command-line parameters
    Addition to basic function for asymmetric key
    Addition to function that handles command-line parameters
  Provide function that contains the maximal length of encrypted byte array for
      asymmetric algorithms.
    Include this in ToString() functions!
  Polish the AsymKeyInfo, CertInfo, AsymKeyExport, CertExport (not yet existent)
  Rename the EncryptAsym functions (e.g. add ShortPlain suffix)
  Create function for head for Asymmetric-symmetric encryption
    Fields:
    Function that packs head to byte array
    Function that reads head from a stream and denotes the position after the
      File signature, e.g. "IgEncAsRnSym"
      Asymmetric algorithm type as 0-terminated ASCII string
      Public key checksum length
      Public key checksum (because asymmetric keys must be provided externally)
      Symmetric algorithm type as 0-terminated ASCII string
      Encrypted symmetric key length
      Encrypted symmetric key
      IV length
      Initialization vector
      Salt length 
      Overall checksum algorithm as 0-terminated ASCII string. None for no
        checksum.
      Overall checksum bytes (if there is one). Length is deduced
          from the algorithm type.
        Checksum is created in the following way: after all parameters are
          known, each of them is crypto-hashed, and hash bytes are XORed with
          the current value. The first hash is hash of the file signature.
      Encrypted text (cipher) where original consists of salt bytes appended
        by original text
    Control function that does that and prints information
  Create Symmetric/asymmetric encrypt/decrypt
  Build Symmetric/asymmetric encrypt-decrypt to an algorithm.