Package org.kapott.hbci.manager

## Class FlickerCode

- java.lang.Object
- - org.kapott.hbci.manager.FlickerCode

    public class FlickerCode
    extends java.lang.Object

Implementierung des Flicker-Codes fuer optisches ChipTAN. Basiert auf der Javascript-Implementierung von http://6xq.net/media/00/20/flickercode.html Die Javascript-Implementierung war jedoch nicht mehr aktuell (basiert auf HHD 1.3).

### Nested Class Summary

Nested Classes
`class` `FlickerCode.DE` Bean fuer die Eigenschaften eines einzelnen DE.
`static class` `FlickerCode.Encoding` Das Encoding der Nutzdaten.
`static class` `FlickerCode.HHDVersion` Versionskennung.
`class` `FlickerCode.Startcode` Bean fuer die Eigenschaften des Startcodes.

### Field Summary

Fields
`FlickerCode.DE` `de1` Datenelement 1.
`FlickerCode.DE` `de2` Datenelement 2.
`FlickerCode.DE` `de3` Datenelement 3.
`int` `lc` Laenge des gesamten Codes.
`java.lang.String` `rest` Der Rest des Codes.
`FlickerCode.Startcode` `startCode` Der Startcode.
`FlickerCode.HHDVersion` `version` Die HHD-Version.

### Constructor Summary

Constructors
`FlickerCode()` ct.
`FlickerCode​(java.lang.String code)` ct.
`FlickerCode​(HHDVersion hhd, java.lang.String code)` ct.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `equals​(java.lang.Object obj)`
`java.lang.String` `render()` Rendert den flickerfaehigen Code aus dem Challenge im HHD-Format.
`java.lang.String` `toString()`
`static FlickerCode` `tryParse​(java.lang.String challenge, java.lang.String hhduc)` Versucht, aus Challenge und Challenge HHDuc den Flicker-Code zu extrahieren und ihn in einen flickerfaehigen Code umzuwandeln.
`static FlickerCode` `tryParse​(HHDVersion hhd, java.lang.String challenge, java.lang.String hhduc)` Versucht, aus Challenge und Challenge HHDuc den Flicker-Code zu extrahieren und ihn in einen flickerfaehigen Code umzuwandeln.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### version

    public FlickerCode.HHDVersion version

Die HHD-Version.

#### lc

    public int lc

Laenge des gesamten Codes.

#### startCode

    public FlickerCode.Startcode startCode

Der Startcode.

#### de1

    public FlickerCode.DE de1

Datenelement 1.

#### de2

    public FlickerCode.DE de2

Datenelement 2.

#### de3

    public FlickerCode.DE de3

Datenelement 3.

#### rest

    public java.lang.String rest

Der Rest des Codes. Mit dem koennen wir nichts anfangen

### Constructor Detail

#### FlickerCode

    public FlickerCode()

ct. Parameterloser Konstruktor zum manuellen Zusammenstecken eines Codes.

#### FlickerCode

    public FlickerCode​(java.lang.String code)

ct. Parst den HHDuc-Code aus dem uebergebenen Code.

Parameters:
  `code` - der zu parsende Code.

#### FlickerCode

    public FlickerCode​(HHDVersion hhd,
                       java.lang.String code)

ct. Parst den HHDuc-Code aus dem uebergebenen Code.

Parameters:
  `hhd` - die HHD-Version. Kann NULL sein.
  `code` - der zu parsende Code.

### Method Detail

#### tryParse

    public static FlickerCode tryParse​(java.lang.String challenge,
                                       java.lang.String hhduc)

Versucht, aus Challenge und Challenge HHDuc den Flicker-Code zu extrahieren und ihn in einen flickerfaehigen Code umzuwandeln. Nur wenn tatsaechlich ein gueltiger Code enthalten ist, der als HHDuc-Code geparst und in einen Flicker-Code umgewandelt werden konnte, liefert die Funktion den Code. Sonst immer NULL.

Parameters:
  `challenge` - der Challenge-Text. Das DE "Challenge HHDuc" gibt es erst seit HITAN4. Einige Banken haben aber schon vorher optisches chipTAN gemacht. Die haben das HHDuc dann direkt im Freitext des Challenge mitgeschickt (mit String-Tokens zum Extrahieren markiert). Die werden vom FlickerCode-Parser auch unterstuetzt.
  `hhduc` - das echte Challenge HHDuc.
Returns:
  der geparste Flickercode oder NULL.

#### tryParse

    public static FlickerCode tryParse​(HHDVersion hhd,
                                       java.lang.String challenge,
                                       java.lang.String hhduc)

Versucht, aus Challenge und Challenge HHDuc den Flicker-Code zu extrahieren und ihn in einen flickerfaehigen Code umzuwandeln. Nur wenn tatsaechlich ein gueltiger Code enthalten ist, der als HHDuc-Code geparst und in einen Flicker-Code umgewandelt werden konnte, liefert die Funktion den Code. Sonst immer NULL.

Parameters:
  `hhd` - die HHD-Version. Kann NULL sein.
  `challenge` - der Challenge-Text. Das DE "Challenge HHDuc" gibt es erst seit HITAN4. Einige Banken haben aber schon vorher optisches chipTAN gemacht. Die haben das HHDuc dann direkt im Freitext des Challenge mitgeschickt (mit String-Tokens zum Extrahieren markiert). Die werden vom FlickerCode-Parser auch unterstuetzt.
  `hhduc` - das echte Challenge HHDuc.
Returns:
  der geparste Flickercode oder NULL.

#### render

    public java.lang.String render()

Rendert den flickerfaehigen Code aus dem Challenge im HHD-Format.

Returns:
  der neu generierte Flicker-Code.

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`
See Also:
  `Object.toString()`

#### equals

    public boolean equals​(java.lang.Object obj)

Overrides:
  `equals` in class `java.lang.Object`
See Also:
  `Object.equals(java.lang.Object)`