liberic 0.1.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f7154a7fb0d323532924a60fce17dbcdd2d464d9
4
- data.tar.gz: 76ecf60803cb70557713e856e496c19f155676fc
2
+ SHA256:
3
+ metadata.gz: 5e7deb7e6297685fa161f7503076497a044838f97a7eb7cc0152e4569919217e
4
+ data.tar.gz: 5be4c0aa504af885535e022ea797fadafbba322da364ad49bb79f2aa37096489
5
5
  SHA512:
6
- metadata.gz: 5686564a1497bf3484fabbf5cb2bebb5ab8b517957ab3fd7c2f74cbbaae9ee5c235c2e43b641761f2b16f3dff4136f842b712714a4c98eb90c451a5e3eef9bb5
7
- data.tar.gz: f28ea51cadc9b35add75f834c2e0f57448b8e09fa1e902f8f135d397144927548b3cbd8c120d6bdbf145d807f9cf6f3aad96996dd724b3fce180273a45da3890
6
+ metadata.gz: 127d45ca76db8a8a5478836983762aa7acf69aeee68a2e37a660c3d4c8eae95de1dae6a14375805bfae35ff6e9f9d3c03fe341c31e37e70bda4571b2a75c68d7
7
+ data.tar.gz: 51a34f281440d87d4e7863b057fc472f41293c7b80311780d691dd6bcb44891107ae2ad4bb521e9b52d23cbbf0ccc218b5262dfbfae61edac24f60f8f692f0e8
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.3.0
data/CHANGELOG.md ADDED
@@ -0,0 +1,46 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.0]
9
+
10
+ Eric now requires a call to an initialization function. This happens
11
+ when the gem is required. However, this is possibly not thread safe
12
+ (no research was done on this).
13
+
14
+ In a single thread context, the gem should be backwards compatible.
15
+
16
+ Names of the error codes (see `Liberic::SDK::Fehlercodes`) have been
17
+ updated according to the constant names used in `eric_fehlercodes.h`
18
+ from the ERiC sources from ERIC 39.
19
+
20
+ So technically this update is not 100% backwards compatible. However, I
21
+ find a bump to 2.0.0 excessive for this release.
22
+
23
+ ### Added
24
+
25
+ - Updated documentation and added a changelog.
26
+ - Added `Liberic::SDK::hole_zertifikat_eigenschaften`
27
+ - Added `Liberic::SDK::initialisiere` and `Liberic::SDK::beende`
28
+
29
+ ### Changed
30
+
31
+ - Updated dependencies of this gem. Since it has been a couple of years
32
+ since the last update, minimum required versions haven't been tested.
33
+ The gem probably also works with Ruby 2.x and older versions of ffi
34
+ and nokogiri.
35
+ - Updated API for ERIC 39 (2023).
36
+ image that will render properly (although in English for all languages)
37
+
38
+ ## [1.0.2] - Prior 2024
39
+
40
+ This gem was originally developed for a company that became later
41
+ wundertax. A [fork of the gem](https://github.com/wundertax/liberic-ruby)
42
+ was maintained by them for a while but has been archived in 2019.
43
+
44
+ Development of [the original version](https://github.com/mpm/liberic-ruby) of
45
+ this gem (where this changelog belongs to) was picked up by me in 2024
46
+ for a different project.
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ ruby '3.3.0'
4
+
3
5
  # Specify your gem's dependencies in liberic.gemspec
4
6
  gemspec
data/README.md CHANGED
@@ -27,7 +27,7 @@ Or install it yourself (not possible yet) as:
27
27
  $ gem install liberic
28
28
 
29
29
  The ERiC library files are not distributed with this gem. They must be
30
- obtained from the [ELSTER Downloads Page](https://www.elster.de/ssl/secure/eric.php). (Requires your personal credentials which have to be requested from ELSTER).
30
+ obtained from the [ELSTER Downloads Page](https://www.elster.de/elsterweb/entwickler/infoseite/eric). (Requires your personal credentials which have to be requested from ELSTER).
31
31
 
32
32
  Follow the installation instructions from the ERiC documentation.
33
33
 
@@ -40,33 +40,37 @@ include/
40
40
  lib/
41
41
  ```
42
42
 
43
- Currently, the environment variable `ERIC_HOME` needs to be set to this
43
+ Currently, the environment variable `ERIC_HOME_39` needs to be set to this
44
44
  folder or the gem will not find the library files.
45
45
 
46
46
  For example:
47
47
 
48
48
  ```sh
49
- $ export ERIC_HOME=/opt/ERiC-23.3.8.0/Linux-x86_64
49
+ $ export ERIC_HOME_39=/opt/ERiC-39.3.2.0/Linux-x86_64
50
50
  ```
51
51
 
52
52
  ### Additional steps on OS X
53
+
54
+ The following OS X specific information dates back to the first version of this
55
+ library (from 2016). Might be outdated or incorrect by now.
56
+
53
57
  On *Mac OS X* you need to process the libraries to fix the interal paths
54
58
  (credits to @deviantbits):
55
59
 
56
60
  ```
57
- libs=`ls $ERIC_HOME/lib/*.dylib`
58
- plugins=`ls $ERIC_HOME/lib/plugins2/*.dylib`
61
+ libs=`ls $ERIC_HOME_27/lib/*.dylib`
62
+ plugins=`ls $ERIC_HOME_27/lib/plugins2/*.dylib`
59
63
 
60
64
  for target in $libs
61
65
  do
62
66
  for lib in $libs
63
67
  do
64
- install_name_tool -change "@rpath/"`basename $lib` "$ERIC_HOME/lib/"`basename $lib` $target
68
+ install_name_tool -change "@rpath/"`basename $lib` "$ERIC_HOME_27/lib/"`basename $lib` $target
65
69
  done
66
70
 
67
71
  for plugin in $plugins
68
72
  do
69
- install_name_tool -change "@rpath/plugins2/"`basename $plugin` "$ERIC_HOME/lib/plugins2/"`basename $plugin` $target
73
+ install_name_tool -change "@rpath/plugins2/"`basename $plugin` "$ERIC_HOME_27/lib/plugins2/"`basename $plugin` $target
70
74
  done
71
75
  done
72
76
 
@@ -74,7 +78,7 @@ for target in $plugins
74
78
  do
75
79
  for lib in $libs
76
80
  do
77
- install_name_tool -change "@rpath/"`basename $lib` "$ERIC_HOME/lib/"`basename $lib` $target
81
+ install_name_tool -change "@rpath/"`basename $lib` "$ERIC_HOME_27/lib/"`basename $lib` $target
78
82
  done
79
83
  done
80
84
  ```
@@ -82,7 +86,7 @@ done
82
86
  Check your settings by running:
83
87
 
84
88
  ```sh
85
- $ ls $ERIC_HOME/lib/libericapi.*
89
+ $ ls $ERIC_HOME_27/lib/libericapi.*
86
90
  ```
87
91
  This should list you one file with an operating system dependend suffix.
88
92
 
data/lib/liberic/boot.rb CHANGED
@@ -19,7 +19,7 @@ module Liberic
19
19
  File.expand_path("libericapi.#{suffix}", ERIC_LIB_FOLDER)
20
20
  end
21
21
 
22
- ERIC_HOME = ENV['ERIC_HOME'] || raise(InitializationError.new('ERIC_HOME environment variable not found (set it to the path to the ERiC libraries)'))
22
+ ERIC_HOME = ENV['ERIC_HOME_39'] || raise(InitializationError.new('ERIC_HOME_39 environment variable not found (set it to the path to the ERiC libraries)'))
23
23
  ERIC_LIB_FOLDER = File.expand_path('lib', ERIC_HOME)
24
24
 
25
25
  def check_eric_version!
@@ -7,7 +7,7 @@ module Liberic
7
7
  extend self
8
8
 
9
9
  def raise_on_error(value)
10
- return value if value == SDK::Fehlercodes::OK
10
+ return value if value == SDK::Fehlercodes::ERIC_OK
11
11
  raise Error.new(SDK::Fehlercodes::CODES[value])
12
12
  end
13
13
 
@@ -64,9 +64,9 @@ module Liberic
64
64
  result = Helpers::Invocation.with_result_buffer(false) do |local_buffer|
65
65
  SDK::API.bearbeite_vorgang(@xml, @type,
66
66
  eric_action,
67
- print_params,
67
+ (action == :submit ? nil : print_params),
68
68
  options[:encryption],
69
- nil, # transferHandle
69
+ (action == :submit ? FFI::MemoryPointer.new(:uint32, 1) : nil), # transferHandle
70
70
  local_buffer,
71
71
  server_buffer)
72
72
  end
@@ -84,7 +84,9 @@ module Liberic
84
84
  ACTIONS = {
85
85
  validate: :validiere,
86
86
  print: :drucke,
87
- print_and_submit: :sende
87
+ print_and_submit: :sende,
88
+ submit: :sende,
89
+ print_and_submit_auth: :sende_auth
88
90
  }
89
91
 
90
92
  def create_print_params(options)
@@ -9,6 +9,7 @@ module Liberic
9
9
  def initialize(response_xml)
10
10
  @response_xml = response_xml
11
11
  @response_dom = Nokogiri::XML(@response_xml)
12
+
12
13
  @libs = @response_dom.xpath('//version:Bibliothek', version: VERSION_NS).map do |lib|
13
14
  fields = Hash[
14
15
  {file: 'Name',
@@ -9,7 +9,7 @@ module Liberic
9
9
  attach_function(name, original_name, params, return_type)
10
10
  end
11
11
 
12
- # ERICAPI_DECL int STDCALL EricBearbeiteVorgang(
12
+ # ERICAPI_IMPORT int STDCALL EricBearbeiteVorgang(
13
13
  # const char* datenpuffer,
14
14
  # const char* datenartVersion,
15
15
  # uint32_t bearbeitungsFlags,
@@ -27,66 +27,83 @@ module Liberic
27
27
  :pointer,
28
28
  :pointer], :int
29
29
 
30
- # ERICAPI_DECL int STDCALL EricChangePassword(const char* psePath, const char* oldPin,
31
- # const char* newPin);
30
+
31
+ # ERICAPI_IMPORT int STDCALL EricBeende(void);
32
+ attach_eric_function :beende, [], :int
33
+
34
+ # ERICAPI_IMPORT int STDCALL EricChangePassword(const byteChar* psePath, const byteChar* oldPin,
35
+ # const byteChar* newPin);
32
36
  attach_eric_function :change_password, [:string, :string, :string], :int
33
37
 
34
- # ERICAPI_DECL int STDCALL EricCheckBuFaNummer(const char* steuernummer);
35
- attach_eric_function :check_bu_fa_nummer, [:string], :int
38
+ # ERICAPI_IMPORT int STDCALL EricPruefeBuFaNummer(const byteChar* steuernummer);
39
+ attach_eric_function :pruefe_bu_fa_nummer, [:string], :int
36
40
 
37
- # ERICAPI_DECL int STDCALL EricCheckXML(const char* xml, const char* datenartVersion,
41
+ # ERICAPI_IMPORT int STDCALL EricCheckXML(const char* xml, const char* datenartVersion,
38
42
  # EricRueckgabepufferHandle fehlertextPuffer);
39
43
  attach_eric_function :check_xml, [:string, :string, :pointer], :int, :EricCheckXML
40
44
 
41
- # ERICAPI_DECL int STDCALL EricCloseHandleToCertificate(EricZertifikatHandle hToken);
45
+ # ERICAPI_IMPORT int STDCALL EricCloseHandleToCertificate(EricZertifikatHandle hToken);
42
46
  attach_eric_function :close_handle_to_certificate, [:uint], :int
43
47
 
44
48
  # TODO
45
- # ERICAPI_DECL int STDCALL EricCreateKey(const char* pin, const char* pfad,
46
- # const eric_zertifikat_parameter_t* zertifikatInfo);
49
+ # ERICAPI_IMPORT int STDCALL EricCreateKey(
50
+ # const byteChar* pin,
51
+ # const byteChar* pfad,
52
+ # const eric_zertifikat_parameter_t* zertifikatInfo);
47
53
  attach_eric_function :create_key, [:string, :string, :pointer], :int
48
54
 
49
- # ERICAPI_DECL int STDCALL EricCreateTH(const char* xml, const char* verfahren,
55
+ # ERICAPI_IMPORT int STDCALL EricCreateTH(const char* xml, const char* verfahren,
50
56
  # const char* datenart, const char* vorgang,
51
57
  # const char* testmerker, const char* herstellerId,
52
58
  # const char* datenLieferant, const char* versionClient,
53
- # const char* publicKey,
59
+ # const byteChar* publicKey,
54
60
  # EricRueckgabepufferHandle xmlRueckgabePuffer);
55
61
  attach_eric_function :create_th, [:string, :string, :string, :string,
56
62
  :string, :string, :string, :string, :string, :pointer], :int, :EricCreateTH
57
63
 
58
- # ERICAPI_DECL int STDCALL EricDekodiereDaten(
64
+ # TODO:
65
+ # ERICAPI_IMPORT int STDCALL EricCreateUUID(
66
+ # EricRueckgabepufferHandle uuidRueckgabePuffer);
67
+
68
+ # ERICAPI_IMPORT int STDCALL EricDekodiereDaten(
59
69
  # EricZertifikatHandle zertifikatHandle,
60
- # const char* pin,
61
- # const char* base64Eingabe,
70
+ # const byteChar* pin,
71
+ # const byteChar* base64Eingabe,
62
72
  # EricRueckgabepufferHandle rueckgabePuffer);
63
73
  attach_eric_function :dekodiere_daten, [:uint, :string, :string, :pointer], :int
64
74
 
65
- # ERICAPI_DECL int STDCALL EricEinstellungAlleZuruecksetzen(void);
66
75
  attach_eric_function :einstellung_alle_zuruecksetzen, [:void], :int
67
76
 
68
- # ERICAPI_DECL int STDCALL EricEinstellungLesen(const char* name,
77
+ # ERICAPI_IMPORT int STDCALL EricEinstellungLesen(
78
+ # const char* name,
69
79
  # EricRueckgabepufferHandle rueckgabePuffer);
70
80
  attach_eric_function :einstellung_lesen, [:string, :pointer], :int
71
81
 
72
- # ERICAPI_DECL int STDCALL EricEinstellungSetzen(const char* name, const char* wert);
82
+ # ERICAPI_IMPORT int STDCALL EricEinstellungSetzen(
83
+ # const char* name,
84
+ # const char* wert);
73
85
  attach_eric_function :einstellung_setzen, [:string, :string], :int
74
86
 
75
- # ERICAPI_DECL int STDCALL EricEinstellungZuruecksetzen(const char* name);
87
+ # ERICAPI_IMPORT int STDCALL EricEinstellungZuruecksetzen(
88
+ # const char* name);
76
89
  attach_eric_function :einstellung_zuruecksetzen, [:string], :int
77
90
 
78
- # ERICAPI_DECL int STDCALL EricEntladePlugins();
91
+ # ERICAPI_IMPORT int STDCALL EricEntladePlugins(
92
+ # void);
79
93
  attach_eric_function :entlade_plugins, [], :int
80
94
 
81
- # ERICAPI_DECL int STDCALL EricFormatStNr(const char* eingabeSteuernummer,
95
+ # ERICAPI_IMPORT int STDCALL EricFormatStNr(
96
+ # const byteChar* eingabeSteuernummer,
82
97
  # EricRueckgabepufferHandle rueckgabePuffer);
83
98
  attach_eric_function :format_st_nr, [:string, :pointer], :int
84
99
 
85
- # ERICAPI_DECL int STDCALL EricGetAuswahlListen (const char* datenartVersion, const char* feldkennung,
100
+ # ERICAPI_IMPORT int STDCALL EricGetAuswahlListen(
101
+ # const char* datenartVersion,
102
+ # const char* feldkennung,
86
103
  # EricRueckgabepufferHandle rueckgabeXmlPuffer);
87
104
  attach_eric_function :get_auswahl_listen, [:string, :string, :pointer], :int
88
105
 
89
- # ERICAPI_DECL int STDCALL EricGetErrormessagesFromXMLAnswer(
106
+ # ERICAPI_IMPORT int STDCALL EricGetErrormessagesFromXMLAnswer(
90
107
  # const char* xml,
91
108
  # EricRueckgabepufferHandle transferticketPuffer,
92
109
  # EricRueckgabepufferHandle returncodeTHPuffer,
@@ -94,76 +111,108 @@ module Liberic
94
111
  # EricRueckgabepufferHandle returncodesUndFehlertexteNDHXmlPuffer);
95
112
  attach_eric_function :get_errormessages_from_xml_answer, [:string, :pointer, :pointer, :pointer, :pointer], :int, :EricGetErrormessagesFromXMLAnswer
96
113
 
97
- # ERICAPI_DECL int STDCALL EricGetHandleToCertificate(EricZertifikatHandle* hToken,
114
+ # ERICAPI_IMPORT int STDCALL EricGetHandleToCertificate(
115
+ # EricZertifikatHandle* hToken,
98
116
  # uint32_t* iInfoPinSupport,
99
- # const char* pathToKeystore);
117
+ # const byteChar* pathToKeystore);
100
118
  attach_eric_function :get_handle_to_certificate, [:pointer, :pointer, :string], :int
101
119
 
102
- # ERICAPI_DECL int STDCALL EricGetPinStatus(EricZertifikatHandle hToken, uint32_t* pinStatus,
120
+ # ERICAPI_IMPORT int STDCALL EricGetPinStatus(
121
+ # EricZertifikatHandle hToken,
122
+ # uint32_t* pinStatus,
103
123
  # uint32_t keyType);
104
124
  attach_eric_function :get_pin_status, [:uint, :pointer, :uint], :int
105
125
 
106
- # TODO
107
- # ERICAPI_DECL int STDCALL EricGetPublicKey(const eric_verschluesselungs_parameter_t* cryptoParameter,
126
+ # ERICAPI_IMPORT int STDCALL EricGetPublicKey(
127
+ # const eric_verschluesselungs_parameter_t* cryptoParameter,
108
128
  # EricRueckgabepufferHandle rueckgabePuffer);
109
- # attach_eric_function :get_public_key, [:string, :pointer], :int
129
+ attach_eric_function :get_public_key, [:pointer, :pointer], :int
110
130
 
111
- # ERICAPI_DECL int STDCALL EricHoleFehlerText(int fehlerkode,
131
+ # ERICAPI_IMPORT int STDCALL EricHoleFehlerText(
132
+ # int fehlerkode,
112
133
  # EricRueckgabepufferHandle rueckgabePuffer);
113
134
  attach_eric_function :hole_fehler_text, [:int, :pointer], :int
114
135
 
115
- # ERICAPI_DECL int STDCALL EricHoleFinanzaemter(const char* finanzamtLandNummer,
136
+ # ERICAPI_IMPORT int STDCALL EricHoleFinanzaemter(
137
+ # const byteChar* finanzamtLandNummer,
116
138
  # EricRueckgabepufferHandle rueckgabeXmlPuffer);
117
139
  attach_eric_function :hole_finanzaemter, [:string, :pointer], :int
118
140
 
119
- # ERICAPI_DECL int STDCALL EricHoleFinanzamtLandNummern(EricRueckgabepufferHandle rueckgabeXmlPuffer);
141
+ # ERICAPI_IMPORT int STDCALL EricHoleFinanzamtLandNummern(
142
+ # EricRueckgabepufferHandle rueckgabeXmlPuffer);
120
143
  attach_eric_function :hole_finanzamt_land_nummern, [:pointer], :int
121
144
 
122
145
  # TODO
123
- # ERICAPI_DECL int STDCALL EricHoleFinanzamtsdaten(const char bufaNr[5],
124
- # struct Finanzamtsdaten *finanzamtsdaten);
146
+ # ERICAPI_IMPORT int STDCALL EricHoleFinanzamtsdaten(
147
+ # const byteChar bufaNr[5],
148
+ # EricRueckgabepufferHandle rueckgabeXmlPuffer);
125
149
 
126
- # ERICAPI_DECL int STDCALL EricHoleTestfinanzaemter(EricRueckgabepufferHandle rueckgabeXmlPuffer);
150
+ # ERICAPI_IMPORT int STDCALL EricHoleTestfinanzaemter(
151
+ # EricRueckgabepufferHandle rueckgabeXmlPuffer);
127
152
  attach_eric_function :hole_testfinanzaemter, [:pointer], :int
128
153
 
129
- # ERICAPI_DECL int STDCALL EricHoleZertifikatFingerabdruck(
154
+ # ERICAPI_IMPORT int STDCALL EricHoleZertifikatEigenschaften(
155
+ # EricZertifikatHandle hToken,
156
+ # const byteChar * pin,
157
+ # EricRueckgabepufferHandle rueckgabeXmlPuffer);
158
+ attach_eric_function :hole_zertifikat_eigenschaften, [:uint, :string, :pointer], :int
159
+
160
+ # ERICAPI_IMPORT int STDCALL EricHoleZertifikatFingerabdruck(
130
161
  # const eric_verschluesselungs_parameter_t* cryptoParameter,
131
162
  # EricRueckgabepufferHandle fingerabdruckPuffer,
132
163
  # EricRueckgabepufferHandle signaturPuffer);
133
164
  attach_eric_function :hole_zertifikat_fingerabdruck, [:pointer, :pointer, :pointer], :int
134
165
 
135
- # ERICAPI_DECL int STDCALL EricKonvertiereZertifikat(const char* pin, const char* pse);
136
- attach_eric_function :konvertiere_zertifikat, [:string, :string], :int
166
+ # ERICAPI_IMPORT int STDCALL EricInitialisiere(
167
+ # const byteChar *pluginPfad,
168
+ # const byteChar *logPfad);
169
+ attach_eric_function :initialisiere, [:string, :string], :int
137
170
 
138
- # ERICAPI_DECL int STDCALL EricMakeElsterStnr(const char* steuernrBescheid,
139
- # const char landesnr[2+1],
140
- # const char bundesfinanzamtsnr[4+1],
171
+ # ERICAPI_IMPORT int STDCALL EricMakeElsterStnr(
172
+ # const byteChar* steuernrBescheid,
173
+ # const byteChar landesnr[2+1],
174
+ # const byteChar bundesfinanzamtsnr[4+1],
141
175
  # EricRueckgabepufferHandle steuernrPuffer);
142
176
  # FIXME: non-pointer string
143
177
  attach_eric_function :make_elster_stnr, [:string, :string, :string, :pointer], :int
144
178
 
145
- # ERICAPI_DECL int STDCALL EricPruefeBIC(const char* bic);
179
+ # ERICAPI_IMPORT int STDCALL EricPruefeBIC(
180
+ # const byteChar* bic);
146
181
  attach_eric_function :pruefe_bic, [:string], :int, :EricPruefeBIC
147
182
 
148
- # ERICAPI_DECL int STDCALL EricPruefeIBAN(const char* iban);
183
+ # ERICAPI_IMPORT int STDCALL EricPruefeIBAN(
184
+ # const byteChar* iban);
149
185
  attach_eric_function :pruefe_iban, [:string], :int, :EricPruefeIBAN
150
186
 
151
- # ERICAPI_DECL int STDCALL EricPruefeIdentifikationsMerkmal(const char* steuerId);
187
+ # TODO
188
+ # ERICAPI_IMPORT int STDCALL EricPruefeEWAz(
189
+ # const byteChar* einheitswertAz);
190
+
191
+ # ERICAPI_IMPORT int STDCALL EricPruefeIdentifikationsMerkmal(
192
+ # const byteChar* steuerId);
152
193
  attach_eric_function :pruefe_identifikations_merkmal, [:string], :int
153
194
 
154
- # ERICAPI_DECL int STDCALL EricPruefeSteuernummer(const char* steuernummer);
195
+ # ERICAPI_IMPORT int STDCALL EricPruefeSteuernummer(
196
+ # const byteChar* steuernummer);
155
197
  attach_eric_function :pruefe_steuernummer, [:string], :int
156
198
 
157
199
  # TODO
158
- # ERICAPI_DECL int STDCALL EricRegistriereFortschrittCallback(
200
+ # ERICAPI_IMPORT int STDCALL EricPruefeZertifikatPin(
201
+ # const byteChar *pathToKeystore,
202
+ # const byteChar *pin,
203
+ # uint32_t keyType);
204
+
205
+ # TODO
206
+ # ERICAPI_IMPORT int STDCALL EricRegistriereFortschrittCallback(
159
207
  # EricFortschrittCallback funktion,
160
208
  # void* benutzerdaten);
161
209
 
162
210
  # TODO
163
- # ERICAPI_DECL int STDCALL EricRegistriereGlobalenFortschrittCallback(
211
+ # ERICAPI_IMPORT int STDCALL EricRegistriereGlobalenFortschrittCallback(
164
212
  # EricFortschrittCallback funktion,
165
213
  # void* benutzerdaten);
166
214
 
215
+ # check if this still works...
167
216
  # typedef void(STDCALL *EricLogCallback)(
168
217
  # const char* kategorie,
169
218
  # eric_log_level_t loglevel,
@@ -171,7 +220,7 @@ module Liberic
171
220
  # void* benutzerdaten);
172
221
  callback :log_callback, [:string, :int, :string, :pointer], :void
173
222
 
174
- # ERICAPI_DECL int STDCALL EricRegistriereLogCallback(
223
+ # ERICAPI_IMPORT int STDCALL EricRegistriereLogCallback(
175
224
  # EricLogCallback funktion,
176
225
  # uint32_t schreibeEricLogDatei,
177
226
  # void* benutzerdaten);
@@ -183,22 +232,28 @@ module Liberic
183
232
  end
184
233
  end
185
234
 
186
- # ERICAPI_DECL EricRueckgabepufferHandle STDCALL EricRueckgabepufferErzeugen();
235
+ # ERICAPI_IMPORT EricRueckgabepufferHandle STDCALL EricRueckgabepufferErzeugen(
236
+ # void);
187
237
  attach_eric_function :rueckgabepuffer_erzeugen, [], :pointer
188
238
 
189
- # ERICAPI_DECL int STDCALL EricRueckgabepufferFreigeben(EricRueckgabepufferHandle handle);
239
+ # ERICAPI_IMPORT int STDCALL EricRueckgabepufferFreigeben(
240
+ # EricRueckgabepufferHandle handle);
190
241
  attach_eric_function :rueckgabepuffer_freigeben, [:pointer], :int
191
242
 
192
- # ERICAPI_DECL const char* STDCALL EricRueckgabepufferInhalt(EricRueckgabepufferHandle handle);
243
+ # ERICAPI_IMPORT const char* STDCALL EricRueckgabepufferInhalt(
244
+ # EricRueckgabepufferHandle handle);
193
245
  attach_eric_function :rueckgabepuffer_inhalt, [:pointer], :string
194
246
 
195
- # ERICAPI_DECL uint32_t STDCALL EricRueckgabepufferLaenge(EricRueckgabepufferHandle handle);
247
+ # ERICAPI_IMPORT uint32_t STDCALL EricRueckgabepufferLaenge(
248
+ # EricRueckgabepufferHandle handle);
196
249
  attach_eric_function :rueckgabepuffer_laenge, [:pointer], :uint
197
250
 
198
- # ERICAPI_DECL int STDCALL EricSystemCheck();
251
+ # ERICAPI_IMPORT int STDCALL EricSystemCheck(
252
+ # void);
199
253
  attach_eric_function :system_check, [], :int
200
254
 
201
- # ERICAPI_DECL int STDCALL EricVersion(EricRueckgabepufferHandle rueckgabeXmlPuffer);
255
+ # ERICAPI_IMPORT int STDCALL EricVersion(
256
+ # EricRueckgabepufferHandle rueckgabeXmlPuffer);
202
257
  attach_eric_function :version, [:pointer], :int
203
258
  end
204
259
  end
@@ -1,7 +1,7 @@
1
1
  module Liberic
2
2
  module SDK
3
3
  module Configuration
4
- LIBERICAPI_VERSION = %w(23.2.12.0 23.3.6.0 23.3.8.0 23.4.10.0 24.1.12.0)
4
+ LIBERICAPI_VERSION = %w(39.2.4.0)
5
5
  ENCODING = 'iso-8859-15'
6
6
  end
7
7
  end
@@ -2,186 +2,234 @@ module Liberic
2
2
  module SDK
3
3
  module Fehlercodes
4
4
  CODES = {
5
- 0 => 'OK',
6
- 610001001 => 'GLOBAL_UNKNOWN',
7
- 610001002 => 'GLOBAL_PRUEF_FEHLER',
8
- 610001007 => 'GLOBAL_FEHLERMELDUNG_NICHT_VORHANDEN',
9
- 610001008 => 'GLOBAL_KEINE_DATEN_VORHANDEN',
10
- 610001013 => 'GLOBAL_NICHT_GENUEGEND_ARBEITSSPEICHER',
11
- 610001014 => 'GLOBAL_DATEI_NICHT_GEFUNDEN',
12
- 610001016 => 'GLOBAL_HERSTELLER_ID_NICHT_ERLAUBT',
13
- 610001017 => 'GLOBAL_ILLEGAL_STATE',
14
- 610001018 => 'GLOBAL_FUNKTION_NICHT_ERLAUBT',
15
- 610001019 => 'GLOBAL_ECHTFALL_NICHT_ERLAUBT',
16
- 610001020 => 'GLOBAL_NO_VERSAND_IN_BETA_VERSION',
17
- 610001025 => 'GLOBAL_TESTMERKER_UNGUELTIG',
18
- 610001026 => 'GLOBAL_DATENSATZ_ZU_GROSS',
19
- 610001027 => 'GLOBAL_VERSCHLUESSELUNGS_PARAMETER_NICHT_ERLAUBT',
20
- 610001028 => 'GLOBAL_NUR_PORTALZERTIFIKAT_ERLAUBT',
21
- 610001029 => 'GLOBAL_ABRUFCODE_NICHT_ERLAUBT',
22
- 610001030 => 'GLOBAL_ERROR_XML_CREATE',
23
- 610001031 => 'GLOBAL_TEXTPUFFERGROESSE_FIX',
24
- 610001032 => 'GLOBAL_INTERNER_FEHLER',
25
- 610001033 => 'GLOBAL_ARITHMETIKFEHLER',
26
- 610001034 => 'GLOBAL_STEUERNUMMER_UNGUELTIG',
27
- 610001035 => 'GLOBAL_STEUERNUMMER_FALSCHE_LAENGE',
28
- 610001036 => 'GLOBAL_STEUERNUMMER_NICHT_NUMERISCH',
29
- 610001037 => 'GLOBAL_LANDESNUMMER_UNBEKANNT',
30
- 610001038 => 'GLOBAL_BUFANR_UNBEKANNT',
31
- 610001039 => 'GLOBAL_LANDESNUMMER_BUFANR',
32
- 610001040 => 'GLOBAL_PUFFER_ZUGRIFFSKONFLIKT',
33
- 610001041 => 'GLOBAL_PUFFER_UEBERLAUF',
34
- 610001042 => 'GLOBAL_DATENARTVERSION_UNBEKANNT',
35
- 610001044 => 'GLOBAL_DATENARTVERSION_XML_INKONSISTENT',
36
- 610001045 => 'GLOBAL_COMMONDATA_NICHT_VERFUEGBAR',
37
- 610001046 => 'GLOBAL_LOG_EXCEPTION',
38
- 610001047 => 'GLOBAL_TRANSPORTSCHLUESSEL_NICHT_ERLAUBT',
39
- 610001051 => 'GLOBAL_VORSATZ_UNGUELTIG',
40
- 610001102 => 'GLOBAL_UNKNOWN_PARAMETER_ERROR',
41
- 610001108 => 'GLOBAL_CHECK_CORRUPTED_NDS',
42
- 610001206 => 'GLOBAL_VERSCHLUESSELUNGS_PARAMETER_NICHT_ANGEGEBEN',
43
- 610001208 => 'GLOBAL_SEND_AUTH_PIN_NICHT_ANGEGEBEN_RESERVIERT',
44
- 610001209 => 'GLOBAL_SEND_FLAG_MEHR_ALS_EINES',
45
- 610001218 => 'GLOBAL_UNGUELTIGE_FLAG_KOMBINATION',
46
- 610001220 => 'GLOBAL_ERSTE_SEITE_DRUCK_NICHT_UNTERSTUETZT',
47
- 610001222 => 'GLOBAL_UNGUELTIGER_PARAMETER',
48
- 610001223 => 'GLOBAL_EINGANGSDATENSATZ_ZU_GROSS',
49
- 610001224 => 'GLOBAL_DRUCK_FUER_VERFAHREN_NICHT_ERLAUBT',
50
- 610001225 => 'GLOBAL_VERSAND_ART_NICHT_UNTERSTUETZT',
51
- 610001226 => 'GLOBAL_UNGUELTIGE_PARAMETER_VERSION',
52
- 610001227 => 'GLOBAL_TRANSFERHANDLE',
53
- 610001228 => 'GLOBAL_PLUGININITIALISIERUNG',
54
- 610001229 => 'GLOBAL_INKOMPATIBLE_VERSIONEN',
55
- 610001230 => 'GLOBAL_VERSCHLUESSELUNGSVERFAHREN_NICHT_UNTERSTUETZT',
56
- 610001400 => 'GLOBAL_UTI_ERROR',
57
- 610001404 => 'GLOBAL_UTI_COUNTRY_NOT_SUPPORTED',
58
- 610001501 => 'GLOBAL_IBAN_FORMALER_FEHLER',
59
- 610001502 => 'GLOBAL_IBAN_LAENDERCODE_FEHLER',
60
- 610001503 => 'GLOBAL_IBAN_LANDESFORMAT_FEHLER',
61
- 610001504 => 'GLOBAL_IBAN_PRUEFZIFFER_FEHLER',
62
- 610001510 => 'GLOBAL_BIC_FORMALER_FEHLER',
63
- 610001511 => 'GLOBAL_BIC_LAENDERCODE_FEHLER',
64
- 610001519 => 'GLOBAL_ZULASSUNGSNUMMER_ZU_LANG',
65
- 610001520 => 'GLOBAL_IDNUMMER_LAENGE_UNGUELTIG',
66
- 610001521 => 'GLOBAL_IDNUMMER_NICHT_NUMERISCH',
67
- 610001522 => 'GLOBAL_IDNUMMER_NICHT_GENAU_EINE_ZIFFER_DOPPELT',
68
- 610001523 => 'GLOBAL_IDNUMMER_ERSTE_ZIFFER_UNGUELTIG',
69
- 610001524 => 'GLOBAL_IDNUMMER_PRUEFZIFFER_UNGUELTIG',
70
- 610001851 => 'GLOBAL_UPDATE_NECESSARY',
71
- 610001860 => 'GLOBAL_EINSTELLUNG_NAME_UNGUELTIG',
72
- 610001861 => 'GLOBAL_EINSTELLUNG_WERT_UNGUELTIG',
73
- 610001862 => 'GLOBAL_ERR_DEKODIEREN',
74
- 610001863 => 'GLOBAL_FUNKTION_NICHT_UNTERSTUETZT',
75
- 610001865 => 'GLOBAL_NUTZDATENTICKETS_NICHT_EINDEUTIG',
76
- 610001866 => 'GLOBAL_NUTZDATENHEADERVERSIONEN_UNEINHEITLICH',
77
- 610001867 => 'GLOBAL_BUNDESLAENDER_UNEINHEITLICH',
78
- 610001868 => 'GLOBAL_ZEITRAEUME_UNEINHEITLICH',
79
- 610001869 => 'GLOBAL_NUTZDATENHEADER_EMPFAENGER_NICHT_KORREKT',
5
+ 0 => 'ERIC_OK',
6
+ 610001001 => 'ERIC_GLOBAL_UNKNOWN',
7
+ 610001002 => 'ERIC_GLOBAL_PRUEF_FEHLER',
8
+ 610001003 => 'ERIC_GLOBAL_HINWEISE',
9
+ 610001007 => 'ERIC_GLOBAL_FEHLERMELDUNG_NICHT_VORHANDEN',
10
+ 610001008 => 'ERIC_GLOBAL_KEINE_DATEN_VORHANDEN',
11
+ 610001013 => 'ERIC_GLOBAL_NICHT_GENUEGEND_ARBEITSSPEICHER',
12
+ 610001014 => 'ERIC_GLOBAL_DATEI_NICHT_GEFUNDEN',
13
+ 610001016 => 'ERIC_GLOBAL_HERSTELLER_ID_NICHT_ERLAUBT',
14
+ 610001017 => 'ERIC_GLOBAL_ILLEGAL_STATE',
15
+ 610001018 => 'ERIC_GLOBAL_FUNKTION_NICHT_ERLAUBT',
16
+ 610001019 => 'ERIC_GLOBAL_ECHTFALL_NICHT_ERLAUBT',
17
+ 610001020 => 'ERIC_GLOBAL_NO_VERSAND_IN_BETA_VERSION',
18
+ 610001025 => 'ERIC_GLOBAL_TESTMERKER_UNGUELTIG',
19
+ 610001026 => 'ERIC_GLOBAL_DATENSATZ_ZU_GROSS',
20
+ 610001027 => 'ERIC_GLOBAL_VERSCHLUESSELUNGS_PARAMETER_NICHT_ERLAUBT',
21
+ 610001028 => 'ERIC_GLOBAL_NUR_PORTALZERTIFIKAT_ERLAUBT',
22
+ 610001029 => 'ERIC_GLOBAL_ABRUFCODE_NICHT_ERLAUBT',
23
+ 610001030 => 'ERIC_GLOBAL_ERROR_XML_CREATE',
24
+ 610001031 => 'ERIC_GLOBAL_TEXTPUFFERGROESSE_FIX',
25
+ 610001032 => 'ERIC_GLOBAL_INTERNER_FEHLER',
26
+ 610001033 => 'ERIC_GLOBAL_ARITHMETIKFEHLER',
27
+ 610001034 => 'ERIC_GLOBAL_STEUERNUMMER_UNGUELTIG',
28
+ 610001035 => 'ERIC_GLOBAL_STEUERNUMMER_FALSCHE_LAENGE',
29
+ 610001036 => 'ERIC_GLOBAL_STEUERNUMMER_NICHT_NUMERISCH',
30
+ 610001037 => 'ERIC_GLOBAL_LANDESNUMMER_UNBEKANNT',
31
+ 610001038 => 'ERIC_GLOBAL_BUFANR_UNBEKANNT',
32
+ 610001039 => 'ERIC_GLOBAL_LANDESNUMMER_BUFANR',
33
+ 610001040 => 'ERIC_GLOBAL_PUFFER_ZUGRIFFSKONFLIKT',
34
+ 610001041 => 'ERIC_GLOBAL_PUFFER_UEBERLAUF',
35
+ 610001042 => 'ERIC_GLOBAL_DATENARTVERSION_UNBEKANNT',
36
+ 610001044 => 'ERIC_GLOBAL_DATENARTVERSION_XML_INKONSISTENT',
37
+ 610001045 => 'ERIC_GLOBAL_COMMONDATA_NICHT_VERFUEGBAR',
38
+ 610001046 => 'ERIC_GLOBAL_LOG_EXCEPTION',
39
+ 610001047 => 'ERIC_GLOBAL_TRANSPORTSCHLUESSEL_NICHT_ERLAUBT',
40
+ 610001048 => 'ERIC_GLOBAL_OEFFENTLICHER_SCHLUESSEL_UNGUELTIG',
41
+ 610001049 => 'ERIC_GLOBAL_TRANSPORTSCHLUESSEL_TYP_FALSCH',
42
+ 610001050 => 'ERIC_GLOBAL_PUFFER_UNGLEICHER_INSTANZ',
43
+ 610001051 => 'ERIC_GLOBAL_VORSATZ_UNGUELTIG',
44
+ 610001053 => 'ERIC_GLOBAL_DATEIZUGRIFF_VERWEIGERT',
45
+ 610001080 => 'ERIC_GLOBAL_UNGUELTIGE_INSTANZ',
46
+ 610001081 => 'ERIC_GLOBAL_NICHT_INITIALISIERT',
47
+ 610001082 => 'ERIC_GLOBAL_MEHRFACHE_INITIALISIERUNG',
48
+ 610001083 => 'ERIC_GLOBAL_FEHLER_INITIALISIERUNG',
49
+ 610001102 => 'ERIC_GLOBAL_UNKNOWN_PARAMETER_ERROR',
50
+ 610001108 => 'ERIC_GLOBAL_CHECK_CORRUPTED_NDS',
51
+ 610001206 => 'ERIC_GLOBAL_VERSCHLUESSELUNGS_PARAMETER_NICHT_ANGEGEBEN',
52
+ 610001209 => 'ERIC_GLOBAL_SEND_FLAG_MEHR_ALS_EINES',
53
+ 610001218 => 'ERIC_GLOBAL_UNGUELTIGE_FLAG_KOMBINATION',
54
+ 610001220 => 'ERIC_GLOBAL_ERSTE_SEITE_DRUCK_NICHT_UNTERSTUETZT',
55
+ 610001222 => 'ERIC_GLOBAL_UNGUELTIGER_PARAMETER',
56
+ 610001224 => 'ERIC_GLOBAL_DRUCK_FUER_VERFAHREN_NICHT_ERLAUBT',
57
+ 610001225 => 'ERIC_GLOBAL_VERSAND_ART_NICHT_UNTERSTUETZT',
58
+ 610001226 => 'ERIC_GLOBAL_UNGUELTIGE_PARAMETER_VERSION',
59
+ 610001227 => 'ERIC_GLOBAL_TRANSFERHANDLE',
60
+ 610001228 => 'ERIC_GLOBAL_PLUGININITIALISIERUNG',
61
+ 610001229 => 'ERIC_GLOBAL_INKOMPATIBLE_VERSIONEN',
62
+ 610001230 => 'ERIC_GLOBAL_VERSCHLUESSELUNGSVERFAHREN_NICHT_UNTERSTUETZT',
63
+ 610001231 => 'ERIC_GLOBAL_MEHRFACHAUFRUFE_NICHT_UNTERSTUETZT',
64
+ 610001404 => 'ERIC_GLOBAL_UTI_COUNTRY_NOT_SUPPORTED',
65
+ 610001501 => 'ERIC_GLOBAL_IBAN_FORMALER_FEHLER',
66
+ 610001502 => 'ERIC_GLOBAL_IBAN_LAENDERCODE_FEHLER',
67
+ 610001503 => 'ERIC_GLOBAL_IBAN_LANDESFORMAT_FEHLER',
68
+ 610001504 => 'ERIC_GLOBAL_IBAN_PRUEFZIFFER_FEHLER',
69
+ 610001510 => 'ERIC_GLOBAL_BIC_FORMALER_FEHLER',
70
+ 610001511 => 'ERIC_GLOBAL_BIC_LAENDERCODE_FEHLER',
71
+ 610001519 => 'ERIC_GLOBAL_ZULASSUNGSNUMMER_ZU_LANG',
72
+ 610001525 => 'ERIC_GLOBAL_IDNUMMER_UNGUELTIG',
73
+ 610001526 => 'ERIC_GLOBAL_NULL_PARAMETER',
74
+ 610001527 => 'ERIC_GLOBAL_EWAZ_UNGUELTIG',
75
+ 610001528 => 'ERIC_GLOBAL_EWAZ_LANDESKUERZEL_UNBEKANNT',
76
+ 610001851 => 'ERIC_GLOBAL_UPDATE_NECESSARY',
77
+ 610001860 => 'ERIC_GLOBAL_EINSTELLUNG_NAME_UNGUELTIG',
78
+ 610001861 => 'ERIC_GLOBAL_EINSTELLUNG_WERT_UNGUELTIG',
79
+ 610001862 => 'ERIC_GLOBAL_ERR_DEKODIEREN',
80
+ 610001863 => 'ERIC_GLOBAL_FUNKTION_NICHT_UNTERSTUETZT',
81
+ 610001865 => 'ERIC_GLOBAL_NUTZDATENTICKETS_NICHT_EINDEUTIG',
82
+ 610001866 => 'ERIC_GLOBAL_NUTZDATENHEADERVERSIONEN_UNEINHEITLICH',
83
+ 610001867 => 'ERIC_GLOBAL_BUNDESLAENDER_UNEINHEITLICH',
84
+ 610001868 => 'ERIC_GLOBAL_ZEITRAEUME_UNEINHEITLICH',
85
+ 610001869 => 'ERIC_GLOBAL_NUTZDATENHEADER_EMPFAENGER_NICHT_KORREKT',
80
86
 
81
- 610101200 => 'TRANSFER_COM_ERROR',
82
- 610101201 => 'TRANSFER_VORGANG_NICHT_UNTERSTUETZT',
83
- 610101210 => 'TRANSFER_ERR_XML_THEADER',
84
- 610101251 => 'TRANSFER_ERR_PARAM',
85
- 610101253 => 'TRANSFER_ERR_DATENTEILENDNOTFOUND',
86
- 610101255 => 'TRANSFER_ERR_BEGINDATENLIEFERANT',
87
- 610101256 => 'TRANSFER_ERR_ENDDATENLIEFERANT',
88
- 610101257 => 'TRANSFER_ERR_BEGINTRANSPORTSCHLUESSEL',
89
- 610101258 => 'TRANSFER_ERR_ENDTRANSPORTSCHLUESSEL',
90
- 610101259 => 'TRANSFER_ERR_BEGINDATENGROESSE',
91
- 610101260 => 'TRANSFER_ERR_ENDDATENGROESSE',
92
- 610101271 => 'TRANSFER_ERR_SEND',
93
- 610101274 => 'TRANSFER_ERR_NOTENCRYPTED',
94
- 610101276 => 'TRANSFER_ERR_PROXYCONNECT',
95
- 610101278 => 'TRANSFER_ERR_CONNECTSERVER',
96
- 610101279 => 'TRANSFER_ERR_NORESPONSE',
97
- 610101280 => 'TRANSFER_ERR_PROXYAUTH',
98
- 610101282 => 'TRANSFER_ERR_SEND_INIT',
99
- 610101283 => 'TRANSFER_ERR_TIMEOUT',
100
- 610101291 => 'TRANSFER_ERR_OTHER',
101
- 610101292 => 'TRANSFER_ERR_XML_NHEADER',
102
- 610101293 => 'TRANSFER_ERR_XML_ENCODING',
103
- 610101294 => 'TRANSFER_ERR_ENDSIGUSER',
104
- 610101295 => 'TRANSFER_ERR_XMLTAG_NICHT_GEFUNDEN',
105
- 610101297 => 'TRANSFER_ERR_DATENTEILFEHLER',
87
+ 610101200 => 'ERIC_TRANSFER_COM_ERROR',
88
+ 610101201 => 'ERIC_TRANSFER_VORGANG_NICHT_UNTERSTUETZT',
89
+ 610101210 => 'ERIC_TRANSFER_ERR_XML_THEADER',
90
+ 610101251 => 'ERIC_TRANSFER_ERR_PARAM',
91
+ 610101253 => 'ERIC_TRANSFER_ERR_DATENTEILENDNOTFOUND',
92
+ 610101255 => 'ERIC_TRANSFER_ERR_BEGINDATENLIEFERANT',
93
+ 610101256 => 'ERIC_TRANSFER_ERR_ENDDATENLIEFERANT',
94
+ 610101257 => 'ERIC_TRANSFER_ERR_BEGINTRANSPORTSCHLUESSEL',
95
+ 610101258 => 'ERIC_TRANSFER_ERR_ENDTRANSPORTSCHLUESSEL',
96
+ 610101259 => 'ERIC_TRANSFER_ERR_BEGINDATENGROESSE',
97
+ 610101260 => 'ERIC_TRANSFER_ERR_ENDDATENGROESSE',
98
+ 610101271 => 'ERIC_TRANSFER_ERR_SEND',
99
+ 610101274 => 'ERIC_TRANSFER_ERR_NOTENCRYPTED',
100
+ 610101276 => 'ERIC_TRANSFER_ERR_PROXYCONNECT',
101
+ 610101278 => 'ERIC_TRANSFER_ERR_CONNECTSERVER',
102
+ 610101279 => 'ERIC_TRANSFER_ERR_NORESPONSE',
103
+ 610101280 => 'ERIC_TRANSFER_ERR_PROXYAUTH',
104
+ 610101282 => 'ERIC_TRANSFER_ERR_SEND_INIT',
105
+ 610101283 => 'ERIC_TRANSFER_ERR_TIMEOUT',
106
+ 610101284 => 'ERIC_TRANSFER_ERR_PROXYPORT_INVALID',
107
+ 610101291 => 'ERIC_TRANSFER_ERR_OTHER',
108
+ 610101292 => 'ERIC_TRANSFER_ERR_XML_NHEADER',
109
+ 610101293 => 'ERIC_TRANSFER_ERR_XML_ENCODING',
110
+ 610101294 => 'ERIC_TRANSFER_ERR_ENDSIGUSER',
111
+ 610101295 => 'ERIC_TRANSFER_ERR_XMLTAG_NICHT_GEFUNDEN',
112
+ 610101297 => 'ERIC_TRANSFER_ERR_DATENTEILFEHLER',
113
+ 610101500 => 'ERIC_TRANSFER_EID_ZERTIFIKATFEHLER',
114
+ 610101510 => 'ERIC_TRANSFER_EID_KEINKONTO',
115
+ 610101511 => 'ERIC_TRANSFER_EID_IDNRNICHTEINDEUTIG',
116
+ 610101512 => 'ERIC_TRANSFER_EID_SERVERFEHLER',
117
+ 610101520 => 'ERIC_TRANSFER_EID_KEINCLIENT',
118
+ 610101521 => 'ERIC_TRANSFER_EID_CLIENTFEHLER',
119
+ 610101522 => 'ERIC_TRANSFER_EID_FEHLENDEFELDER',
120
+ 610101523 => 'ERIC_TRANSFER_EID_IDENTIFIKATIONABGEBROCHEN',
121
+ 610101524 => 'ERIC_TRANSFER_EID_NPABLOCKIERT',
106
122
 
107
- 610201016 => 'CRYPT_ERROR_CREATE_KEY',
108
- 610201101 => 'CRYPT_E_INVALID_HANDLE',
109
- 610201102 => 'CRYPT_E_MAX_SESSION',
110
- 610201103 => 'CRYPT_E_BUSY',
111
- 610201104 => 'CRYPT_E_OUT_OF_MEM',
112
- 610201105 => 'CRYPT_E_PSE_PATH',
113
- 610201106 => 'CRYPT_E_PIN_WRONG',
114
- 610201107 => 'CRYPT_E_PIN_LOCKED',
115
- 610201108 => 'CRYPT_E_P7_READ',
116
- 610201109 => 'CRYPT_E_P7_DECODE',
117
- 610201110 => 'CRYPT_E_P7_RECIPIENT',
118
- 610201111 => 'CRYPT_E_P12_READ',
119
- 610201112 => 'CRYPT_E_P12_DECODE',
120
- 610201113 => 'CRYPT_E_P12_SIG_KEY',
121
- 610201114 => 'CRYPT_E_P12_ENC_KEY',
122
- 610201115 => 'CRYPT_E_P11_SIG_KEY',
123
- 610201116 => 'CRYPT_E_P11_ENC_KEY',
124
- 610201117 => 'CRYPT_E_XML_PARSE',
125
- 610201118 => 'CRYPT_E_XML_SIG_ADD',
126
- 610201119 => 'CRYPT_E_XML_SIG_TAG',
127
- 610201120 => 'CRYPT_E_XML_SIG_SIGN',
128
- 610201121 => 'CRYPT_E_ENCODE_UNKNOWN',
129
- 610201122 => 'CRYPT_E_ENCODE_ERROR',
130
- 610201123 => 'CRYPT_E_XML_INIT',
131
- 610201124 => 'CRYPT_E_ENCRYPT',
132
- 610201125 => 'CRYPT_E_DECRYPT',
133
- 610201126 => 'CRYPT_E_P11_SLOT_EMPTY',
134
- 610201127 => 'CRYPT_E_NO_SIG_ENC_KEY',
135
- 610201144 => 'CRYPT_E_TOKEN_TYPE_MISMATCH',
136
- 610201145 => 'CRYPT_E_TOKEN_UNKNOWN',
137
- 610201200 => 'CRYPT_ZERTIFIKAT',
138
- 610201201 => 'CRYPT_SIGNATUR',
139
- 610201202 => 'CRYPT_PSE_PFAD',
140
- 610201203 => 'CRYPT_NICHT_UNTERSTUETZTES_PSE_FORMAT',
141
- 610201205 => 'CRYPT_PIN_BENOETIGT',
142
- 610201206 => 'CRYPT_PIN_STAERKE_NICHT_AUSREICHEND',
143
- 610201208 => 'CRYPT_E_INTERN',
144
- 610201209 => 'CRYPT_ZERTIFIKATSPFAD_KEIN_VERZEICHNIS',
145
- 610201210 => 'CRYPT_ZERTIFIKATSDATEI_EXISTIERT_BEREITS',
146
- 610201211 => 'CRYPT_PIN_ENTHAELT_UNGUELTIGE_ZEICHEN',
147
- 610201212 => 'CRYPT_E_INVALID_PARAM_ABC',
148
- 610201213 => 'CRYPT_CORRUPTED',
123
+ 610201016 => 'ERIC_CRYPT_ERROR_CREATE_KEY',
124
+ 610201101 => 'ERIC_CRYPT_E_INVALID_HANDLE',
125
+ 610201102 => 'ERIC_CRYPT_E_MAX_SESSION',
126
+ 610201103 => 'ERIC_CRYPT_E_BUSY',
127
+ 610201104 => 'ERIC_CRYPT_E_OUT_OF_MEM',
128
+ 610201105 => 'ERIC_CRYPT_E_PSE_PATH',
129
+ 610201106 => 'ERIC_CRYPT_E_PIN_WRONG',
130
+ 610201107 => 'ERIC_CRYPT_E_PIN_LOCKED',
131
+ 610201108 => 'ERIC_CRYPT_E_P7_READ',
132
+ 610201109 => 'ERIC_CRYPT_E_P7_DECODE',
133
+ 610201110 => 'ERIC_CRYPT_E_P7_RECIPIENT',
134
+ 610201111 => 'ERIC_CRYPT_E_P12_READ',
135
+ 610201112 => 'ERIC_CRYPT_E_P12_DECODE',
136
+ 610201113 => 'ERIC_CRYPT_E_P12_SIG_KEY',
137
+ 610201114 => 'ERIC_CRYPT_E_P12_ENC_KEY',
138
+ 610201115 => 'ERIC_CRYPT_E_P11_SIG_KEY',
139
+ 610201116 => 'ERIC_CRYPT_E_P11_ENC_KEY',
140
+ 610201117 => 'ERIC_CRYPT_E_XML_PARSE',
141
+ 610201118 => 'ERIC_CRYPT_E_XML_SIG_ADD',
142
+ 610201119 => 'ERIC_CRYPT_E_XML_SIG_TAG',
143
+ 610201120 => 'ERIC_CRYPT_E_XML_SIG_SIGN',
144
+ 610201121 => 'ERIC_CRYPT_E_ENCODE_UNKNOWN',
145
+ 610201122 => 'ERIC_CRYPT_E_ENCODE_ERROR',
146
+ 610201123 => 'ERIC_CRYPT_E_XML_INIT',
147
+ 610201124 => 'ERIC_CRYPT_E_ENCRYPT',
148
+ 610201125 => 'ERIC_CRYPT_E_DECRYPT',
149
+ 610201126 => 'ERIC_CRYPT_E_P11_SLOT_EMPTY',
150
+ 610201127 => 'ERIC_CRYPT_E_NO_SIG_ENC_KEY',
151
+ 610201128 => 'ERIC_CRYPT_E_LOAD_DLL',
152
+ 610201129 => 'ERIC_CRYPT_E_NO_SERVICE',
153
+ 610201130 => 'ERIC_CRYPT_E_ESICL_EXCEPTION',
154
+ 610201144 => 'ERIC_CRYPT_E_TOKEN_TYPE_MISMATCH',
155
+ 610201146 => 'ERIC_CRYPT_E_P12_CREATE',
156
+ 610201147 => 'ERIC_CRYPT_E_VERIFY_CERT_CHAIN',
157
+ 610201148 => 'ERIC_CRYPT_E_P11_ENGINE_LOADED',
158
+ 610201149 => 'ERIC_CRYPT_E_USER_CANCEL',
159
+ 610201200 => 'ERIC_CRYPT_ZERTIFIKAT',
160
+ 610201201 => 'ERIC_CRYPT_SIGNATUR',
161
+ 610201203 => 'ERIC_CRYPT_NICHT_UNTERSTUETZTES_PSE_FORMAT',
162
+ 610201205 => 'ERIC_CRYPT_PIN_BENOETIGT',
163
+ 610201206 => 'ERIC_CRYPT_PIN_STAERKE_NICHT_AUSREICHEND',
164
+ 610201208 => 'ERIC_CRYPT_E_INTERN',
165
+ 610201209 => 'ERIC_CRYPT_ZERTIFIKATSPFAD_KEIN_VERZEICHNIS',
166
+ 610201210 => 'ERIC_CRYPT_ZERTIFIKATSDATEI_EXISTIERT_BEREITS',
167
+ 610201211 => 'ERIC_CRYPT_PIN_ENTHAELT_UNGUELTIGE_ZEICHEN',
168
+ 610201212 => 'ERIC_CRYPT_E_INVALID_PARAM_ABC',
169
+ 610201213 => 'ERIC_CRYPT_CORRUPTED',
170
+ 610201214 => 'ERIC_CRYPT_EIDKARTE_NICHT_UNTERSTUETZT',
171
+ 610201215 => 'ERIC_CRYPT_E_SC_SLOT_EMPTY',
172
+ 610201216 => 'ERIC_CRYPT_E_SC_NO_APPLET',
173
+ 610201217 => 'ERIC_CRYPT_E_SC_SESSION',
174
+ 610201218 => 'ERIC_CRYPT_E_P11_NO_SIG_CERT',
175
+ 610201219 => 'ERIC_CRYPT_E_P11_INIT_FAILED',
176
+ 610201220 => 'ERIC_CRYPT_E_P11_NO_ENC_CERT',
177
+ 610201221 => 'ERIC_CRYPT_E_P12_NO_SIG_CERT',
178
+ 610201222 => 'ERIC_CRYPT_E_P12_NO_ENC_CERT',
179
+ 610201223 => 'ERIC_CRYPT_E_SC_ENC_KEY',
180
+ 610201224 => 'ERIC_CRYPT_E_SC_NO_SIG_CERT',
181
+ 610201225 => 'ERIC_CRYPT_E_SC_NO_ENC_CERT',
182
+ 610201226 => 'ERIC_CRYPT_E_SC_INIT_FAILED',
183
+ 610201227 => 'ERIC_CRYPT_E_SC_SIG_KEY',
149
184
 
150
- 610301001 => 'IO_FEHLER',
151
- 610301005 => 'IO_DATEI_INKORREKT',
152
- 610301006 => 'IO_PARSE_FEHLER',
153
- 610301007 => 'IO_NDS_GENERIERUNG_FEHLGESCHLAGEN',
154
- 610301010 => 'IO_MASTERDATENSERVICE_NICHT_VERFUEGBAR',
155
- 610301014 => 'IO_STEUERZEICHEN_IM_NDS',
156
- 610301031 => 'IO_VERSIONSINFORMATIONEN_NICHT_GEFUNDEN',
157
- 610301104 => 'IO_FALSCHES_VERFAHREN',
158
- 610301105 => 'IO_READER_MEHRFACHE_STEUERFAELLE',
159
- 610301106 => 'IO_READER_UNERWARTETE_ELEMENTE',
160
- 610301107 => 'IO_READER_FORMALE_FEHLER',
161
- 610301108 => 'IO_READER_FALSCHES_ENCODING',
162
- 610301109 => 'IO_READER_MEHRFACHE_NUTZDATEN_ELEMENTE',
163
- 610301110 => 'IO_READER_MEHRFACHE_NUTZDATENBLOCK_ELEMENTE',
164
- 610301111 => 'IO_UNBEKANNTE_DATENART',
165
- 610301114 => 'IO_READER_UNTERSACHBEREICH_UNGUELTIG',
166
- 610301115 => 'IO_READER_ZU_VIELE_NUTZDATENBLOCK_ELEMENTE',
167
- 610301150 => 'IO_READER_STEUERZEICHEN_IM_TRANSFERHEADER',
168
- 610301151 => 'IO_READER_STEUERZEICHEN_IM_NUTZDATENHEADER',
169
- 610301152 => 'IO_READER_STEUERZEICHEN_IN_DEN_NUTZDATEN',
170
- 610301200 => 'IO_READER_SCHEMA_VALIDIERUNGSFEHLER',
171
- 610301201 => 'IO_READER_UNBEKANNTE_XML_ENTITY',
172
- 610301252 => 'IO_DATENTEILNOTFOUND',
173
- 610301253 => 'IO_DATENTEILENDNOTFOUND',
174
- 610301300 => 'IO_UEBERGABEPARAMETER_FEHLERHAFT',
185
+ 610301001 => 'ERIC_IO_FEHLER',
186
+ 610301005 => 'ERIC_IO_DATEI_INKORREKT',
187
+ 610301006 => 'ERIC_IO_PARSE_FEHLER',
188
+ 610301007 => 'ERIC_IO_NDS_GENERIERUNG_FEHLGESCHLAGEN',
189
+ 610301010 => 'ERIC_IO_MASTERDATENSERVICE_NICHT_VERFUEGBAR',
190
+ 610301014 => 'ERIC_IO_STEUERZEICHEN_IM_NDS',
191
+ 610301031 => 'ERIC_IO_VERSIONSINFORMATIONEN_NICHT_GEFUNDEN',
192
+ 610301104 => 'ERIC_IO_FALSCHES_VERFAHREN',
193
+ 610301105 => 'ERIC_IO_READER_MEHRFACHE_STEUERFAELLE',
194
+ 610301106 => 'ERIC_IO_READER_UNERWARTETE_ELEMENTE',
195
+ 610301107 => 'ERIC_IO_READER_FORMALE_FEHLER',
196
+ 610301108 => 'ERIC_IO_READER_FALSCHES_ENCODING',
197
+ 610301109 => 'ERIC_IO_READER_MEHRFACHE_NUTZDATEN_ELEMENTE',
198
+ 610301110 => 'ERIC_IO_READER_MEHRFACHE_NUTZDATENBLOCK_ELEMENTE',
199
+ 610301111 => 'ERIC_IO_UNBEKANNTE_DATENART',
200
+ 610301114 => 'ERIC_IO_READER_UNTERSACHBEREICH_UNGUELTIG',
201
+ 610301115 => 'ERIC_IO_READER_ZU_VIELE_NUTZDATENBLOCK_ELEMENTE',
202
+ 610301150 => 'ERIC_IO_READER_STEUERZEICHEN_IM_TRANSFERHEADER',
203
+ 610301151 => 'ERIC_IO_READER_STEUERZEICHEN_IM_NUTZDATENHEADER',
204
+ 610301152 => 'ERIC_IO_READER_STEUERZEICHEN_IN_DEN_NUTZDATEN',
205
+ 610301170 => 'ERIC_IO_READER_RABE_FEHLER',
206
+ 610301171 => 'ERIC_IO_READER_KEINE_RABEID',
207
+ 610301172 => 'ERIC_IO_READER_RABEID_UNGUELTIG',
208
+ 610301173 => 'ERIC_IO_READER_RABE_VERIFIKATIONSID_UNGUELTIG',
209
+ 610301174 => 'ERIC_IO_READER_RABE_REFERENZID_UNGUELTIG',
210
+ 610301175 => 'ERIC_IO_READER_RABE_REFERENZID_NICHT_ERLAUBT',
211
+ 610301176 => 'ERIC_IO_READER_RABE_REFERENZIDS_NICHT_EINDEUTIG',
212
+ 610301190 => 'ERIC_IO_READER_ZU_VIELE_ANHAENGE',
213
+ 610301191 => 'ERIC_IO_READER_ANHANG_ZU_GROSS',
214
+ 610301192 => 'ERIC_IO_READER_ANHAENGE_ZU_GROSS',
215
+ 610301200 => 'ERIC_IO_READER_SCHEMA_VALIDIERUNGSFEHLER',
216
+ 610301201 => 'ERIC_IO_READER_UNBEKANNTE_XML_ENTITY',
217
+ 610301252 => 'ERIC_IO_DATENTEILNOTFOUND',
218
+ 610301253 => 'ERIC_IO_DATENTEILENDNOTFOUND',
219
+ 610301300 => 'ERIC_IO_UEBERGABEPARAMETER_FEHLERHAFT',
220
+ 610301400 => 'ERIC_IO_UNGUELTIGE_UTF8_SEQUENZ',
221
+ 610301401 => 'ERIC_IO_UNGUELTIGE_ZEICHEN_IN_PARAMETER',
175
222
 
176
- 610501001 => 'PRINT_INTERNER_FEHLER',
177
- 610501002 => 'PRINT_DRUCKVORLAGE_NICHT_GEFUNDEN',
178
- 610501004 => 'PRINT_UNGUELTIGER_DATEI_PFAD',
179
- 610501007 => 'PRINT_INITIALISIERUNG_FEHLERHAFT',
180
- 610501008 => 'PRINT_AUSGABEZIEL_UNBEKANNT',
181
- 610501009 => 'PRINT_ABBRUCH_DRUCKVORBEREITUNG',
182
- 610501010 => 'PRINT_ABBRUCH_GENERIERUNG',
183
- 610501011 => 'PRINT_STEUERFALL_NICHT_UNTERSTUETZT',
184
- 610501012 => 'PRINT_FUSSTEXT_ZU_LANG'
223
+ 610501001 => 'ERIC_PRINT_INTERNER_FEHLER',
224
+ 610501002 => 'ERIC_PRINT_DRUCKVORLAGE_NICHT_GEFUNDEN',
225
+ 610501004 => 'ERIC_PRINT_UNGUELTIGER_DATEI_PFAD',
226
+ 610501007 => 'ERIC_PRINT_INITIALISIERUNG_FEHLERHAFT',
227
+ 610501008 => 'ERIC_PRINT_AUSGABEZIEL_UNBEKANNT',
228
+ 610501009 => 'ERIC_PRINT_ABBRUCH_DRUCKVORBEREITUNG',
229
+ 610501010 => 'ERIC_PRINT_ABBRUCH_GENERIERUNG',
230
+ 610501011 => 'ERIC_PRINT_STEUERFALL_NICHT_UNTERSTUETZT',
231
+ 610501012 => 'ERIC_PRINT_FUSSTEXT_ZU_LANG',
232
+ 610501015 => 'ERIC_PRINT_PDFCALLBACK'
185
233
  }
186
234
 
187
235
  CODES.each do |value, name|
@@ -35,7 +35,8 @@ module Liberic
35
35
  BearbeitungFlag = enum(
36
36
  :validiere, (1 << 1),
37
37
  :sende, (1 << 2),
38
- :drucke, (1 << 5)
38
+ :drucke, (1 << 5),
39
+ :sende_auth, ('00100110'.to_i(2)) # triggers all three: valiediere, sende and drucke
39
40
  )
40
41
 
41
42
  ERIC_LOG_ERROR = 4
@@ -1,3 +1,3 @@
1
1
  module Liberic
2
- VERSION = '0.1.2'
2
+ VERSION = '1.1.0'
3
3
  end
data/lib/liberic.rb CHANGED
@@ -10,6 +10,8 @@ require 'liberic/process'
10
10
  require 'liberic/config'
11
11
 
12
12
  module Liberic
13
+ SDK::API::initialisiere(nil, nil)
14
+
13
15
  check_eric_version!
14
16
 
15
17
  def config
data/liberic.gemspec CHANGED
@@ -27,10 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_dependency "ffi", "~> 1.9"
31
- spec.add_dependency "nokogiri", "~> 1.6"
30
+ spec.add_dependency "ffi", "~> 1.16"
31
+ spec.add_dependency "nokogiri", "~> 1.16"
32
32
 
33
- spec.add_development_dependency "bundler", "~> 1.10"
34
- spec.add_development_dependency "rake", "~> 10.0"
35
- spec.add_development_dependency "rspec", "~> 3.3"
33
+ spec.add_development_dependency "bundler", "~> 2.5"
34
+ spec.add_development_dependency "rake", "~> 13.1"
35
+ spec.add_development_dependency "rspec", "~> 3.13"
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liberic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Malte Münchert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.9'
19
+ version: '1.16'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.9'
26
+ version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.6'
33
+ version: '1.16'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.6'
40
+ version: '1.16'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.10'
47
+ version: '2.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.10'
54
+ version: '2.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.3'
75
+ version: '3.13'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.3'
82
+ version: '3.13'
83
83
  description: Liberic is a ruby wrapper for ERiC, a C library to interact with German
84
84
  Tax Authority's ELSTER service.
85
85
  email:
@@ -90,7 +90,9 @@ extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
92
  - ".rspec"
93
+ - ".tool-versions"
93
94
  - ".travis.yml"
95
+ - CHANGELOG.md
94
96
  - CODE_OF_CONDUCT.md
95
97
  - Gemfile
96
98
  - LICENSE
@@ -136,8 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
138
  - !ruby/object:Gem::Version
137
139
  version: '0'
138
140
  requirements: []
139
- rubyforge_project:
140
- rubygems_version: 2.4.6
141
+ rubygems_version: 3.5.6
141
142
  signing_key:
142
143
  specification_version: 4
143
144
  summary: Ruby bindings for ELSTER/ERiC (German Tax Authority Service)