HSL 2.0-Framework Beschreibung des Frameworks

Öffentliche Methoden | Öffentliche, statische Methoden | Aufstellung aller Elemente
hsl20_4_crypto.hsl20_4_crypto.AESCipher Klassenreferenz

Klasse zur Verschlüssung von Daten mittels AES. Mehr ...

## Öffentliche Methoden
def | __init__ (self)
| Konstruktor. Mehr ...
def | init (self, key, iv=None)
| Initialisieren. Mehr ...
def | use_ecb (self)
| Verwendet zur Verschlüsselung den Modus ECB (Electronic Code Book) Mehr ...
def | use_cbc (self)
| Verwendet zur Verschlüsselung den Modus CBC (Cipher-Block Chaining)
def | use_cfb (self)
| Verwendet zur Verschlüsselung den Modus CFB (Cipher FeedBack)
def | use_ofb (self)
| Verwendet zur Verschlüsselung den Modus OFB (Output FeedBack)
def | use_ctr (self)
| Verwendet zur Verschlüsselung den Modus CTR (Counter Mode)
def | encrypt (self, data)
| Verschlüsselt den übergebenen Datenblock. Mehr ...
def | decrypt (self, data)
| Entschlüsselt den übergebenen Datenblock. Mehr ...

## Öffentliche, statische Methoden
def | generate_init_vector ()
| Generiert einen 16 Zeichen langen String. Mehr ...

## Ausführliche Beschreibung

Klasse zur Verschlüssung von Daten mittels AES.

Teil des Pakets zur Verschlüsselung.

Die Methoden encrypt (verschlüsseln) und decrypt (entschlüsseln) dienen dazu, ganze Strings zu verarbeiten. Standardmäßig wird CBC (Cipher-Block Chaining) verwendet.

class Crypto_AES(hsl20_4.BaseModule):
def __init__(self, homeserver_context):
....
def on_input_value(self, index, value):
if index == self.PIN_I_DO_CRYPTO:
data = "val_with_16_char"
vector = "abcdefghijklmnop"
aes_1 = self.FRAMEWORK.create_aes()
aes_1.init("key_with_16_char", vector)
aes_1.use_cbc()
encrypted = aes_1.encrypt(data)
aes_2 = self.FRAMEWORK.create_aes()
aes_2.init("key_with_16_char", vector)
aes_2.use_cbc()
decrypted = aes_2.decrypt(encrypted)

Trifft auf dem Eingang PIN_I_DO_CRYPTO ein Telegramm ein, wird der Datenblock data mit dem statischen Vektor vector verschlüsselt (aes_1) und in der Variablen encrypted gespeichert.
Der verschlüsselte Datenblock encrypted wird mit demselben Vektor anschließend wieder entschlüsselt (aes_2) und in der Variablen decrypted gespeichert.
In beiden Fällen wird die Methode CBC verwendet.

Zu beachten
  Die Datenblöcke decrypted und data sind identisch!
  Zum ver- und entschlüsseln kann nicht das selbe AES-Objekt verwendet werden!

## Beschreibung der Konstruktoren und Destruktoren

## ◆ __init__()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.__init__ | ( |  | self | ) |

Konstruktor.

Warnung
  Diese Klasse sollte nicht direkt instanziert werden.

## Dokumentation der Elementfunktionen

## ◆ decrypt()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.decrypt | ( |  | self,
|  |  | data
| ) |  |

Entschlüsselt den übergebenen Datenblock.

Zu beachten
  Es muss stets das komplette zu verschlüsselnde Datenpaket übergeben werden: decrypt(a)+decrypt(b) != decrypt(a+b)
  Je nach Modus muss das übergebene Datenpaket ein Vielfaches der Blockgröße sein.

Parameter

  data | string Datenblock

Ausnahmebehandlung

  AttributeError | Wird ausgelöst, wenn... ...kein Schlüssel angegeben wurde ...der Schlüssel eine ungültige Länge besitzt ...ein Init-Vektor angegeben wurde, der nicht 16 Zeichen lang ist
  ValueError | Wird ausgelöst, wenn... ...die Größe des Datenpakets nicht korrekt ist

## ◆ encrypt()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.encrypt | ( |  | self,
|  |  | data
| ) |  |

Verschlüsselt den übergebenen Datenblock.

Es muss das gesamte zu verschlüsselnde Paket übergeben werden.

Zu beachten
  Es muss stets das komplette zu verschlüsselnde Datenpaket übergeben werden: encrypt(a)+encrypt(b) != encrypt(a+b)
  Je nach Modus muss das übergebene Datenpaket ein Vielfaches der Blockgröße sein.

Parameter

  data | string Datenblock

Ausnahmebehandlung

  AttributeError | Wird ausgelöst, wenn... ...kein Schlüssel angegeben wurde ...der Schlüssel eine ungültige Länge besitzt ...ein Init-Vektor angegeben wurde, der nicht 16 Zeichen lang ist
  ValueError | Wird ausgelöst, wenn... ...die Größe des Datenpakets nicht korrekt ist

## ◆ generate_init_vector()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.generate_init_vector | ( |  | ) |
| static

Generiert einen 16 Zeichen langen String.

Dieser kann als Init-Vektor verwendet werden.

Rückgabe
  string
  Init-Vektor

## ◆ init()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.init | ( |  | self,
|  |  | key,
|  |  | iv = `None`
| ) |  |

Initialisieren.

Parameter

  key | string Schlüssel. Muss die Länge 16, 24 oder 32 haben.
  iv | string Optional. Init-Vektor, muss 16 Zeichen lang sein.

## ◆ use_ecb()

def hsl20_4_crypto.hsl20_4_crypto.AESCipher.use_ecb | ( |  | self | ) |

Verwendet zur Verschlüsselung den Modus ECB (Electronic Code Book)

Zu beachten
  Diese Methode benötigt keinen Init-Vektor!

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

- hsl20_4_crypto.py