Package org.kapott.hbci.manager

# Class FlickerCode

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

public class FlickerCode extends 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
Modifier and Type
Class
Description
`class`
`FlickerCode.DE`
Bean fuer die Eigenschaften eines einzelnen DE.
`static enum`
`FlickerCode.Encoding`
Das Encoding der Nutzdaten.
`static enum`
`FlickerCode.HHDVersion`
Versionskennung.
`class`
`FlickerCode.Startcode`
Bean fuer die Eigenschaften des Startcodes.

## Field Summary

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

## Constructor Summary

Constructors
Constructor
Description
`FlickerCode()`
ct.
`FlickerCode(String code)`
ct.
`FlickerCode(HHDVersion hhd, String code)`
ct.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
`String`
`render()`
Rendert den flickerfaehigen Code aus dem Challenge im HHD-Format.
`String`
`toString()`
`static FlickerCode`
`tryParse(String challenge, 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, String challenge, 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 Details

### 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 String rest
Der Rest des Codes. Mit dem koennen wir nichts anfangen

## Constructor Details

### FlickerCode

public FlickerCode()
ct. Parameterloser Konstruktor zum manuellen Zusammenstecken eines Codes.

### FlickerCode

public FlickerCode(String code)
ct. Parst den HHDuc-Code aus dem uebergebenen Code.

Parameters:
  `code` - der zu parsende Code.

### FlickerCode

public FlickerCode(HHDVersion hhd, 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 Details

### tryParse

public static FlickerCode tryParse(String challenge, 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, String challenge, 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 String render()
Rendert den flickerfaehigen Code aus dem Challenge im HHD-Format.

Returns:
  der neu generierte Flicker-Code.

### toString

public String toString()

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

### equals

public boolean equals(Object obj)

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