Schluessel.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #ifndef Schluessel_H
  2. #define Schluessel_H
  3. #include "Betriebssystem.h"
  4. namespace Framework
  5. {
  6. namespace Verschlüsselung
  7. {
  8. // Speichert einen Array von bytes
  9. class Bytes
  10. {
  11. private:
  12. char *bytes;
  13. bool del;
  14. int län;
  15. int ref;
  16. public:
  17. // Erzeugt einen lehren Byte Array
  18. __declspec( dllexport ) Bytes();
  19. // Erzeugt einen neuen Byte Array mit bestimmter Länge
  20. // län: Die Länge des Arrays
  21. __declspec( dllexport ) Bytes( int län );
  22. // Erzeugt ein neuen Byte Array durch kopieren der bytes
  23. // daten: Die Bytes, die kopiert werden sollen
  24. // län: Die Anzahl der Bytes die kopiert werden sollen
  25. __declspec( dllexport ) Bytes( const char *daten, int län );
  26. // Löscht den Array
  27. __declspec( dllexport ) ~Bytes();
  28. // Befüllt den Bytearray durch kopieren der Bytes
  29. // daten: Die Bytes, die kopiert werden sollen
  30. __declspec( dllexport ) void setBytes( const char *daten );
  31. // Löscht den Array und erzeugt einen neuen
  32. // daten: Die Bytes, die kopiert werden sollen
  33. // län: Die nänge des Arrays
  34. __declspec( dllexport ) void setBytes( const char *daten, int län );
  35. // Löscht den Array und übernimmt den übergebenen ohne zu kopieren
  36. // daten: Der neue Byte Array
  37. // län: Die nänge des Arrays
  38. __declspec( dllexport ) void setBytesZ( char *daten, int län );
  39. // Setzt alle Bytes des Arrays auf einen bestimmten Wert
  40. // c: Der Wert, auf den die Bytes gesetzt werden sollen
  41. __declspec( dllexport ) void füll( const char c );
  42. // Setzt eine bestimmte Anzahl von Bytes des Arrays auf einen bestimmten Wert
  43. // c: Der Wert, auf den die Bytes gesetzt werden sollen
  44. // län: Die Anzahl der Bytes die gesetzt werden sollen
  45. __declspec( dllexport ) void füll( const char c, int län );
  46. // Setzt einen bestimmte Abschnitt von Bytes des Arrays auf einen bestimmten Wert
  47. // c: Der Wert, auf den die Bytes gesetzt werden sollen
  48. // beg: Die Startposition des zu setzenden Abschnittes
  49. // end: Die Endposition des zu setzenden Abschnittes (nicht enthalten)
  50. __declspec( dllexport ) void füll( const char c, int beg, int end );
  51. // Kopiert bestimmte bytes in den Array
  52. // c: Die Bytes, die kopiert werden sollen
  53. // cLän: Die Anzahl an Bytes, die gesetzt werden sollen
  54. __declspec( dllexport ) void füll( const char *c, int cLän );
  55. // Setzt ein bestimmtes Byte auf einen Wert
  56. // c: Der Wert, auf den das Byte gesetzt werden soll
  57. // pos: Die Position des Bytes im Array
  58. __declspec( dllexport ) void set( const char c, int pos );
  59. // Gibt die Länge des Arrays zurück
  60. __declspec( dllexport ) int getLänge() const;
  61. // Gibt den Array von Bytes zurück
  62. __declspec( dllexport ) char *getBytes() const;
  63. // Erhöht den Reference Counting Zähler.
  64. // return: this.
  65. __declspec( dllexport ) Bytes *getThis();
  66. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  67. // return: 0.
  68. __declspec( dllexport ) Bytes *release();
  69. };
  70. // Kann Bytesequenzen mit bestimmten Schlüsseln verschlüsseln und entschlüsseln
  71. class Schlüssel
  72. {
  73. private:
  74. unsigned char *schlüssel;
  75. int län;
  76. int pos;
  77. int ref;
  78. public:
  79. // Erzeugt ein leeres Zeichnung
  80. __declspec( dllexport ) Schlüssel();
  81. // Erzeugt ein neues Zeichnung mi einem Schlüssel
  82. // s: Der Schlüssel, der zum verschlüsseln und entchlüsseln verwendet werden soll
  83. // län: Die Länge des Schlüssels
  84. __declspec( dllexport ) Schlüssel( const char *s, int län );
  85. // Löscht das Zeichnung
  86. __declspec( dllexport ) ~Schlüssel();
  87. // Setzt die Position im Schlüssel, wo mit dem verschlüsseln und entschlüsseln begonnen werden soll
  88. // p: Die Position im Schlüssel
  89. __declspec( dllexport ) void setPos( int p );
  90. // Setzt den Schlüssel, der zum ver- und entschlüsseln verwendet werden soll
  91. // s: Der Schlüssel
  92. // län: Die Länge des Schlüssels
  93. __declspec( dllexport ) void setSchlüssel( const char *s, int län );
  94. // Verschlüsselt einen Byte Array mit dem gesetzten Schlüssel
  95. // daten: Der Byte Array, der verschlüsselt werden soll. Wird von der Funktion verändert
  96. __declspec( dllexport ) void codieren( Bytes *daten );
  97. // Entschlüsselt einen Byte Array mit dem gesetzten Schlüssel
  98. // daten: Der Byte Array, der entschlüsselt werden soll. Wird von der Funktion verändert
  99. __declspec( dllexport ) void decodieren( Bytes *daten );
  100. // Erhöht den Reference Counting Zähler.
  101. // return: this.
  102. __declspec( dllexport ) Schlüssel *getThis();
  103. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  104. // return: 0.
  105. __declspec( dllexport ) Schlüssel *release();
  106. };
  107. }
  108. }
  109. #endif