@regulaforensics/cordova-plugin-document-reader-api 5.4.0 → 5.8.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.
@@ -1,821 +0,0 @@
1
- #import <Foundation/Foundation.h>
2
- #import "JSONConstructor.h"
3
-
4
- @implementation JSONConstructor
5
-
6
- + (NSString*)resultsToJsonString:(RGLDocumentReaderResults*)results {
7
- return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:[self generateResults:results] options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
8
- }
9
-
10
- + (NSMutableDictionary*)generateResults:(RGLDocumentReaderResults*)results {
11
- NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];
12
-
13
- myDictionary[@"resolutionType"] = [NSNumber numberWithInteger:results.resolutionType];
14
- myDictionary[@"overallResult"] = [NSNumber numberWithInteger:results.overallResult];
15
- myDictionary[@"chipPage"] = [NSNumber numberWithInteger:results.chipPage];
16
- myDictionary[@"morePagesAvailable"] = [NSNumber numberWithInteger:results.morePagesAvailable];
17
- myDictionary[@"elapsedTime"] = [NSNumber numberWithInteger:results.elapsedTime];
18
- myDictionary[@"elapsedTimeRFID"] = [NSNumber numberWithInteger:results.elapsedTimeRFID];
19
- myDictionary[@"processingFinishedStatus"] = [NSNumber numberWithInteger:results.processingFinishedStatus];
20
- if(results.authenticityResults != nil)
21
- myDictionary[@"authenticityResult"] = [self generateRGLDocumentReaderAuthenticityResult:results.authenticityResults];
22
- if(results.imageQualityGroup != nil)
23
- myDictionary[@"imageQuality"] = [self generateImageQualityGroup:results.imageQualityGroup];
24
- if(results.barcodePosition != nil)
25
- myDictionary[@"barcodePosition"] = [self generateRGLPosition:results.barcodePosition];
26
- if(results.documentPosition != nil)
27
- myDictionary[@"documentPosition"] = [self generateRGLPosition:results.documentPosition];
28
- if(results.mrzPosition != nil)
29
- myDictionary[@"mrzPosition"] = [self generateRGLPosition:results.mrzPosition];
30
- if(results.rawResult != nil)
31
- myDictionary[@"rawResult"] = results.rawResult;
32
- if(results.graphicResult != nil)
33
- myDictionary[@"graphicResult"] = [self generateDocumentReaderGraphicResult:results.graphicResult];
34
- if(results.textResult != nil)
35
- myDictionary[@"textResult"] = [self generateDocumentReaderTextResult:results.textResult];
36
- if(results.documentType != nil)
37
- myDictionary[@"documentType"] = [self generateNSArrayDocumentReaderDocumentType:results.documentType];
38
- if(results.barcodeResult != nil)
39
- myDictionary[@"barcodeResult"] = [self generateRGLDocumentReaderBarcodeResult:results.barcodeResult];
40
- if(results.rfidSessionData != nil)
41
- myDictionary[@"rfidSessionData"] = [self generateRGLRFIDSessionData:results.rfidSessionData];
42
-
43
- return myDictionary;
44
- }
45
-
46
- + (NSMutableDictionary*)generateRGLPosition:(RGLPosition*)position {
47
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
48
-
49
- output[@"angle"] = [NSNumber numberWithDouble: position.angle];
50
- output[@"perspectiveTr"] = [NSNumber numberWithDouble: position.perspectiveTr];
51
- output[@"objArea"] = [NSNumber numberWithDouble: position.objArea];
52
- output[@"objIntAngleDev"] = [NSNumber numberWithDouble: position.objIntAngleDev];
53
- output[@"pageIndex"] = [NSNumber numberWithInteger:position.pageIndex];
54
- output[@"dpi"] = [NSNumber numberWithInteger:position.dpi];
55
- output[@"inverse"] = [NSNumber numberWithInteger:position.inverse];
56
- output[@"resultStatus"] = [NSNumber numberWithInteger:position.resultStatus];
57
- output[@"docFormat"] = [NSNumber numberWithInteger:position.docFormat];
58
- output[@"height"] = [NSNumber numberWithFloat:position.size.height];
59
- output[@"width"] = [NSNumber numberWithFloat:position.size.width];
60
- output[@"center"] = [self generateCGPoint:position.center];
61
- output[@"leftTop"] = [self generateCGPoint:position.leftTop];
62
- output[@"leftBottom"] = [self generateCGPoint:position.leftBottom];
63
- output[@"rightTop"] = [self generateCGPoint:position.rightTop];
64
- output[@"rightBottom"] = [self generateCGPoint:position.rightBottom];
65
-
66
- return output;
67
- }
68
-
69
- +(NSMutableDictionary*)generateCGPoint:(CGPoint)point {
70
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
71
-
72
- output[@"x"] = [NSNumber numberWithFloat:point.x];
73
- output[@"y"] = [NSNumber numberWithFloat:point.y];
74
-
75
- return output;
76
- }
77
-
78
- + (NSMutableDictionary*)generateRGLDocumentReaderBarcodeResult:(RGLDocumentReaderBarcodeResult*)documentReaderBarcodeResult {
79
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
80
-
81
- if(documentReaderBarcodeResult.fields != nil)
82
- output[@"fields"] = [self generateNSArrayRGLDocumentReaderBarcodeField:documentReaderBarcodeResult.fields];
83
-
84
- return output;
85
- }
86
-
87
- +(NSMutableArray*)generateNSArrayRGLDocumentReaderBarcodeField:(NSArray<RGLDocumentReaderBarcodeField *> * _Nonnull)list {
88
- NSMutableArray *output = [[NSMutableArray alloc] init];
89
- for(RGLDocumentReaderBarcodeField* documentReaderBarcodeField in list)
90
- if(documentReaderBarcodeField != nil)
91
- [output addObject:[self generateRGLDocumentReaderBarcodeField:documentReaderBarcodeField]];
92
- return output;
93
- }
94
-
95
- + (NSMutableDictionary*)generateRGLDocumentReaderBarcodeField:(RGLDocumentReaderBarcodeField*)documentReaderBarcodeField {
96
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
97
-
98
- output[@"barcodeType"] = [NSNumber numberWithInteger:documentReaderBarcodeField.barcodeType];
99
- output[@"status"] = [NSNumber numberWithInteger:documentReaderBarcodeField.status];
100
- output[@"data"] = [NSKeyedUnarchiver unarchiveObjectWithData:documentReaderBarcodeField.data];
101
- output[@"pageIndex"] = [NSNumber numberWithInteger:documentReaderBarcodeField.pageIndex];
102
- if(documentReaderBarcodeField.pdf417Info != nil)
103
- output[@"pdf417Info"] = [self generateRGLPDF417Info:documentReaderBarcodeField.pdf417Info];
104
-
105
- return output;
106
- }
107
-
108
- + (NSMutableDictionary*)generateRGLPDF417Info:(RGLPDF417Info*)pdf417Info {
109
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
110
-
111
- output[@"errorLevel"] = [NSNumber numberWithInteger:pdf417Info.errorLevel];
112
- output[@"columns"] = [NSNumber numberWithInteger:pdf417Info.columns];
113
- output[@"rows"] = [NSNumber numberWithInteger:pdf417Info.rows];
114
-
115
- return output;
116
- }
117
-
118
- + (NSMutableDictionary*)generateRGLDocumentReaderAuthenticityResult:(RGLDocumentReaderAuthenticityResult*)documentReaderAuthenticityResult {
119
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
120
-
121
- output[@"status"] = [NSNumber numberWithInteger:documentReaderAuthenticityResult.status];
122
- if(documentReaderAuthenticityResult.checks != nil)
123
- output[@"checks"] = [self generateNSArrayRGLAuthenticityCheck:documentReaderAuthenticityResult.checks];
124
-
125
- return output;
126
- }
127
-
128
- +(NSMutableArray*)generateNSArrayRGLAuthenticityCheck:(NSArray<RGLAuthenticityCheck*>* _Nonnull)authenticityCheckList {
129
- NSMutableArray *output = [[NSMutableArray alloc] init];
130
- for(RGLAuthenticityCheck* authenticityCheck in authenticityCheckList)
131
- if(authenticityCheck != nil)
132
- [output addObject:[self generateRGLAuthenticityCheck:authenticityCheck]];
133
- return output;
134
- }
135
-
136
- + (NSMutableDictionary*)generateRGLAuthenticityCheck:(RGLAuthenticityCheck*)authenticityCheck {
137
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
138
-
139
- output[@"type"] = [NSNumber numberWithInteger:authenticityCheck.type];
140
- output[@"typeName"] = authenticityCheck.typeName;
141
- output[@"status"] = [NSNumber numberWithInteger:authenticityCheck.status];
142
- output[@"pageIndex"] = [NSNumber numberWithInteger:authenticityCheck.pageIndex];
143
- if(authenticityCheck.elements != nil)
144
- output[@"elements"] = [self generateNSArrayRGLAuthenticityElement:authenticityCheck.elements];
145
-
146
- return output;
147
- }
148
-
149
- +(NSMutableArray*)generateNSArrayRGLAuthenticityElement:(NSArray<RGLAuthenticityElement*>* _Nonnull)authenticityElementList {
150
- NSMutableArray *output = [[NSMutableArray alloc] init];
151
- for(RGLAuthenticityElement* authenticityElement in authenticityElementList)
152
- if(authenticityElement != nil)
153
- [output addObject:[self generateRGLAuthenticityElement:authenticityElement]];
154
- return output;
155
- }
156
-
157
- + (NSMutableDictionary*)generateRGLAuthenticityElement:(RGLAuthenticityElement*)authenticityElement {
158
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
159
-
160
- output[@"status"] = [NSNumber numberWithInteger:authenticityElement.status];
161
- output[@"elementType"] = [NSNumber numberWithInteger:authenticityElement.elementType];
162
- output[@"elementTypeName"] = authenticityElement.elementTypeName;
163
- output[@"elementDiagnose"] = [NSNumber numberWithInteger:authenticityElement.elementDiagnose];
164
- output[@"elementDiagnoseName"] = authenticityElement.elementDiagnoseName;
165
-
166
- return output;
167
- }
168
-
169
- + (NSMutableDictionary*)generateImageQualityGroup:(RGLImageQualityGroup*)imageQualityGroup {
170
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
171
-
172
- output[@"count"] = [NSNumber numberWithInteger:imageQualityGroup.count];
173
- output[@"result"] = [NSNumber numberWithInteger:imageQualityGroup.result];
174
- if(imageQualityGroup.imageQualityList != nil)
175
- output[@"imageQualityList"] = [self generateImageQualityList:imageQualityGroup.imageQualityList];
176
-
177
- return output;
178
- }
179
-
180
- +(NSMutableArray*)generateImageQualityList:(NSArray<RGLImageQuality*>* _Nonnull)imageQualityList {
181
- NSMutableArray *output = [[NSMutableArray alloc] init];
182
- for(RGLImageQuality* imageQuality in imageQualityList)
183
- if(imageQuality != nil)
184
- [output addObject:[self generateImageQuality:imageQuality]];
185
- return output;
186
- }
187
-
188
- +(NSMutableDictionary*)generateImageQuality:(RGLImageQuality*)imageQuality {
189
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
190
-
191
- output[@"type"] = [NSNumber numberWithInteger:imageQuality.type];
192
- output[@"result"] = [NSNumber numberWithInteger:imageQuality.result];
193
- output[@"featureType"] = [NSNumber numberWithInteger:imageQuality.featureType];
194
- output[@"boundRects"] = [self generateNSArrayCGRect:imageQuality.boundRects];
195
-
196
- return output;
197
- }
198
-
199
- +(NSMutableDictionary*)generateDocumentReaderGraphicResult:(RGLDocumentReaderGraphicResult*)documentReaderGraphicResult {
200
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
201
-
202
- if(documentReaderGraphicResult.fields != nil)
203
- output[@"fields"] = [self generateNSArrayDocumentReaderGraphicResultGroup:documentReaderGraphicResult.fields];
204
-
205
- return output;
206
- }
207
-
208
- +(NSMutableArray*)generateNSArrayDocumentReaderGraphicResultGroup:(NSArray<RGLDocumentReaderGraphicField*>* _Nonnull)list {
209
- NSMutableArray *output = [[NSMutableArray alloc] init];
210
- for(RGLDocumentReaderGraphicField* documentReaderGraphicField in list)
211
- if(documentReaderGraphicField != nil)
212
- [output addObject:[self generateDocumentReaderGraphicField:documentReaderGraphicField]];
213
- return output;
214
- }
215
-
216
- +(NSMutableDictionary*)generateDocumentReaderGraphicField:(RGLDocumentReaderGraphicField*)documentReaderGraphicField {
217
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
218
-
219
- output[@"sourceType"] = [NSNumber numberWithInteger:documentReaderGraphicField.sourceType];
220
- output[@"fieldType"] = [NSNumber numberWithInteger:documentReaderGraphicField.fieldType];
221
- output[@"fieldName"] = documentReaderGraphicField.fieldName;
222
- output[@"lightType"] = [NSNumber numberWithInteger:documentReaderGraphicField.lightType];
223
- output[@"lightName"] = documentReaderGraphicField.lightName;
224
- NSData *imageData = UIImageJPEGRepresentation(documentReaderGraphicField.value, 1.0);
225
- NSString * base64String = [imageData base64EncodedStringWithOptions:0];
226
- output[@"value"] = base64String;
227
- output[@"pageIndex"] = [NSNumber numberWithInteger:documentReaderGraphicField.pageIndex];
228
- output[@"fieldRect"] = [self generateCGRect:documentReaderGraphicField.boundRect];
229
-
230
- return output;
231
- }
232
-
233
- +(NSMutableArray*)generateNSArrayCGRect:(NSArray<NSValue*>* _Nonnull)list {
234
- NSMutableArray *output = [[NSMutableArray alloc] init];
235
- for(NSValue* rect in list)
236
- if(rect != nil)
237
- [output addObject:[self generateCGRect:[rect CGRectValue]]];
238
- return output;
239
- }
240
-
241
- +(NSMutableDictionary*)generateCGRect:(CGRect)cgRect {
242
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
243
-
244
- output[@"top"] = @(cgRect.origin.y);
245
- output[@"left"] = @(cgRect.origin.x);
246
- output[@"bottom"] = @(cgRect.origin.y+cgRect.size.height);
247
- output[@"right"] = @(cgRect.origin.x+cgRect.size.width);
248
-
249
- return output;
250
- }
251
-
252
- +(NSMutableDictionary*)generateDocumentReaderTextResult:(RGLDocumentReaderTextResult*)documentReaderTextResult {
253
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
254
-
255
- output[@"status"] = [NSNumber numberWithInteger:documentReaderTextResult.status];
256
- if(documentReaderTextResult.fields != nil)
257
- output[@"fields"] = [self generateNSArrayDocumentReaderTextField:documentReaderTextResult.fields];
258
-
259
- return output;
260
- }
261
-
262
- +(NSMutableArray*)generateNSArrayDocumentReaderTextField:(NSArray<RGLDocumentReaderTextField*>* _Nonnull)list {
263
- NSMutableArray *output = [[NSMutableArray alloc] init];
264
- for(RGLDocumentReaderTextField* documentReaderTextField in list)
265
- if(documentReaderTextField != nil)
266
- [output addObject:[self generateDocumentReaderTextField:documentReaderTextField]];
267
- return output;
268
- }
269
-
270
- +(NSMutableDictionary*)generateDocumentReaderTextField:(RGLDocumentReaderTextField*)documentReaderTextField {
271
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
272
-
273
- output[@"fieldType"] = [NSNumber numberWithInteger:documentReaderTextField.fieldType];
274
- output[@"fieldName"] = documentReaderTextField.fieldName;
275
- output[@"lcid"] = [NSNumber numberWithInteger:documentReaderTextField.lcid];
276
- output[@"lcidName"] = [RGLDocumentReaderTextField lcidName:documentReaderTextField.lcid];
277
- output[@"status"] = [NSNumber numberWithInteger:documentReaderTextField.status];
278
- if([documentReaderTextField getValue] != nil)
279
- output[@"value"] = [self generateDocumentReaderValue:[documentReaderTextField getValue]];
280
- if(documentReaderTextField.values != nil)
281
- output[@"values"] = [self generateNSArrayDocumentReaderValue:documentReaderTextField.values];
282
-
283
- return output;
284
- }
285
-
286
- +(NSMutableArray*)generateNSArrayDocumentReaderValue:(NSArray<RGLDocumentReaderValue*>* _Nonnull)list {
287
- NSMutableArray *output = [[NSMutableArray alloc] init];
288
- for(RGLDocumentReaderValue* documentReaderValue in list)
289
- if(documentReaderValue != nil)
290
- [output addObject:[self generateDocumentReaderValue:documentReaderValue]];
291
- return output;
292
- }
293
-
294
- +(NSMutableDictionary*)generateDocumentReaderValue:(RGLDocumentReaderValue*)documentReaderValue {
295
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
296
-
297
- output[@"sourceType"] = [NSNumber numberWithInteger:documentReaderValue.sourceType];
298
- output[@"value"] = documentReaderValue.value;
299
- output[@"originalValue"] = documentReaderValue.originalValue;
300
- output[@"boundRect"] = [self generateCGRect:documentReaderValue.boundRect];
301
- output[@"validity"] = [NSNumber numberWithInteger:documentReaderValue.validity];
302
- output[@"pageIndex"] = [NSNumber numberWithInteger:documentReaderValue.pageIndex];
303
- output[@"probability"] = [NSNumber numberWithInteger:documentReaderValue.probability];
304
- NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
305
- for(NSNumber* key in documentReaderValue.comparison)
306
- dict[[key stringValue]] = documentReaderValue.comparison[key];
307
- output[@"comparison"] = dict;
308
-
309
- return output;
310
- }
311
-
312
- +(NSMutableArray*)generateNSArrayDocumentReaderDocumentType:(NSArray<RGLDocumentReaderDocumentType*>* _Nonnull)list {
313
- NSMutableArray *output = [[NSMutableArray alloc] init];
314
- for(RGLDocumentReaderDocumentType* documentReaderDocumentType in list)
315
- if(documentReaderDocumentType != nil)
316
- [output addObject:[self generateDocumentReaderDocumentType:documentReaderDocumentType]];
317
- return output;
318
- }
319
-
320
- +(NSMutableDictionary*)generateDocumentReaderDocumentType:(RGLDocumentReaderDocumentType*)documentReaderDocumentType {
321
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
322
-
323
- output[@"name"] = documentReaderDocumentType.name;
324
- output[@"documentID"] = [NSNumber numberWithInteger:documentReaderDocumentType.documentID];
325
- output[@"ICAOCode"] = documentReaderDocumentType.ICAOCode;
326
- output[@"dType"] = [NSNumber numberWithInteger:documentReaderDocumentType.dType];
327
- output[@"dFormat"] = [NSNumber numberWithInteger:documentReaderDocumentType.dFormat];
328
- output[@"dMRZ"] = [NSNumber numberWithBool:documentReaderDocumentType.dMRZ];
329
- output[@"dDescription"] = documentReaderDocumentType.dDescription;
330
- output[@"dYear"] = documentReaderDocumentType.dYear;
331
- output[@"dCountryName"] = documentReaderDocumentType.dCountryName;
332
- output[@"pageIndex"] = [NSNumber numberWithInteger:documentReaderDocumentType.pageIndex];
333
- if(documentReaderDocumentType.FDSID != nil)
334
- output[@"FDSID"] = [self generateNSArrayNSNumber:documentReaderDocumentType.FDSID];
335
-
336
- return output;
337
- }
338
-
339
- +(NSMutableArray*)generateNSArrayNSNumber:(NSArray<NSNumber*>* _Nonnull)list {
340
- NSMutableArray *output = [[NSMutableArray alloc] init];
341
- for(NSNumber* number in list)
342
- [output addObject:number];
343
- return output;
344
- }
345
-
346
- +(NSString*)generateScenario:(RGLScenario*)scenario {
347
- NSMutableDictionary *output = [[NSMutableDictionary alloc] init];
348
-
349
- output[@"name"] = scenario.identifier;
350
- output[@"frame"] = [NSNumber numberWithInteger:scenario.frame];
351
- output[@"frameKWHLandscape"] = [NSNumber numberWithDouble: scenario.frameKWHLandscape];
352
- output[@"frameKWHPortrait"] = [NSNumber numberWithDouble: scenario.frameKWHPortrait];
353
- output[@"frameKWHDoublePageSpreadPortrait"] = [NSNumber numberWithDouble: scenario.frameKWHDoublePageSpreadPortrait];
354
- output[@"frameKWHDoublePageSpreadLandscape"] = [NSNumber numberWithDouble: scenario.frameKWHDoublePageSpreadLandscape];
355
- output[@"description"] = scenario.scenarioDescription;
356
- output[@"barcodeExt"] = [NSNumber numberWithBool:scenario.barcodeExt];
357
- output[@"faceExt"] = [NSNumber numberWithBool:scenario.faceExt];
358
- output[@"multiPageOff"] = [NSNumber numberWithBool:scenario.multiPageOff];
359
- output[@"seriesProcessMode"] = [NSNumber numberWithBool:scenario.seriesProcessMode];
360
- output[@"caption"] = scenario.caption;
361
- output[@"uvTorch"] = [NSNumber numberWithBool:scenario.uvTorch];
362
- output[@"frameOrientation"] = [NSNumber numberWithInteger:scenario.frameOrientation];
363
-
364
- return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:output options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
365
- }
366
-
367
- +(NSMutableDictionary*)generateRGLRFIDSessionData:(RGLRFIDSessionData*)rfidSessionData {
368
- NSMutableDictionary *output = [NSMutableDictionary new];
369
-
370
- output[@"totalBytesReceived"] = [NSNumber numberWithInteger:rfidSessionData.totalBytesReceived];
371
- output[@"totalBytesSent"] = [NSNumber numberWithInteger:rfidSessionData.totalBytesSent];
372
- output[@"processTime"] = [NSNumber numberWithDouble:rfidSessionData.processTime];
373
- output[@"status"] = [NSNumber numberWithInteger:rfidSessionData.status];
374
- output[@"extLeSupport"] = [NSNumber numberWithInteger:rfidSessionData.extLeSupport];
375
- if(rfidSessionData.cardProperties != nil)
376
- output[@"cardProperties"] = [self generateRGLCardProperties:rfidSessionData.cardProperties];
377
- if(rfidSessionData.sessionDataStatus != nil)
378
- output[@"sessionDataStatus"] = [self generateRGLRFIDSessionDataStatus:rfidSessionData.sessionDataStatus];
379
- if(rfidSessionData.accessControls != nil)
380
- output[@"accessControls"] = [self generateNSArrayRGLAccessControlProcedureType:rfidSessionData.accessControls];
381
- if(rfidSessionData.applications != nil)
382
- output[@"applications"] = [self generateNSArrayRGLApplication:rfidSessionData.applications];
383
- if(rfidSessionData.securityObjects != nil)
384
- output[@"securityObjects"] = [self generateNSArrayRGLSecurityObject:rfidSessionData.securityObjects];
385
-
386
- return output;
387
- }
388
-
389
- +(NSMutableDictionary*)generateRGLCardProperties:(RGLCardProperties*)cardProperties {
390
- NSMutableDictionary *output = [NSMutableDictionary new];
391
-
392
- output[@"aTQA"] = [NSNumber numberWithInteger:cardProperties.aTQA];
393
- output[@"bitRateR"] = [NSNumber numberWithInteger:cardProperties.bitRateR];
394
- output[@"bitRateS"] = [NSNumber numberWithInteger:cardProperties.bitRateS];
395
- output[@"chipTypeA"] = [NSNumber numberWithInteger:cardProperties.chipTypeA];
396
- output[@"mifareMemory"] = [NSNumber numberWithInteger:cardProperties.mifareMemory];
397
- output[@"rfidType"] = [NSNumber numberWithInteger:cardProperties.rfidType];
398
- output[@"sAK"] = [NSNumber numberWithInteger:cardProperties.sAK];
399
- output[@"aTQB"] = cardProperties.aTQB;
400
- output[@"aTR"] = cardProperties.aTR;
401
- output[@"baudrate1"] = cardProperties.baudrate1;
402
- output[@"baudrate2"] = cardProperties.baudrate2;
403
- output[@"uID"] = cardProperties.uID;
404
- output[@"support4"] = [NSNumber numberWithBool:cardProperties.support4];
405
- output[@"supportMifare"] = [NSNumber numberWithBool:cardProperties.supportMifare];
406
-
407
- return output;
408
- }
409
-
410
- +(NSMutableDictionary*)generateRGLRFIDSessionDataStatus:(RGLRFIDSessionDataStatus*)sessionDataStatus {
411
- NSMutableDictionary *output = [NSMutableDictionary new];
412
-
413
- output[@"AA"] = [NSNumber numberWithInteger:sessionDataStatus.AA];
414
- output[@"BAC"] = [NSNumber numberWithInteger:sessionDataStatus.BAC];
415
- output[@"CA"] = [NSNumber numberWithInteger:sessionDataStatus.CA];
416
- output[@"PA"] = [NSNumber numberWithInteger:sessionDataStatus.PA];
417
- output[@"PACE"] = [NSNumber numberWithInteger:sessionDataStatus.PACE];
418
- output[@"TA"] = [NSNumber numberWithInteger:sessionDataStatus.TA];
419
- output[@"overallStatus"] = [NSNumber numberWithInteger:sessionDataStatus.overallStatus];
420
-
421
- return output;
422
- }
423
-
424
- +(NSMutableArray*)generateNSArrayRGLAccessControlProcedureType:(NSArray<RGLAccessControlProcedureType*>*)list {
425
- NSMutableArray *output = [NSMutableArray new];
426
- for(RGLAccessControlProcedureType* item in list)
427
- if(item != nil)
428
- [output addObject:[self generateRGLAccessControlProcedureType:item]];
429
- return output;
430
- }
431
-
432
- +(NSMutableDictionary*)generateRGLAccessControlProcedureType:(RGLAccessControlProcedureType*)accessControlProcedureType {
433
- NSMutableDictionary *output = [NSMutableDictionary new];
434
-
435
- output[@"activeOptionIdx"] = [NSNumber numberWithInteger:accessControlProcedureType.activeOptionIdx];
436
- output[@"status"] = [NSNumber numberWithInteger:accessControlProcedureType.status];
437
- output[@"type"] = [NSNumber numberWithInteger:accessControlProcedureType.type];
438
- if(accessControlProcedureType.notifications != nil)
439
- output[@"notifications"] = [self generateNSArrayNSNumber:accessControlProcedureType.notifications];
440
-
441
- return output;
442
- }
443
-
444
- +(NSMutableArray*)generateNSArrayRGLApplication:(NSArray<RGLApplication*>*)list {
445
- NSMutableArray *output = [NSMutableArray new];
446
- for(RGLApplication* item in list)
447
- if(item != nil)
448
- [output addObject:[self generateRGLApplication:item]];
449
- return output;
450
- }
451
-
452
- +(NSMutableDictionary*)generateRGLApplication:(RGLApplication*)application {
453
- NSMutableDictionary *output = [NSMutableDictionary new];
454
-
455
- output[@"applicationID"] = application.applicationID;
456
- output[@"dataHashAlgorithm"] = application.dataHashAlgorithm;
457
- output[@"unicodeVersion"] = application.unicodeVersion;
458
- output[@"version"] = application.version;
459
- output[@"type"] = [NSNumber numberWithInteger:application.type];
460
- output[@"status"] = [NSNumber numberWithInteger:application.status];
461
- if(application.files != nil)
462
- output[@"files"] = [self generateNSArrayRGLFile:application.files];
463
-
464
- return output;
465
- }
466
-
467
- +(NSMutableArray*)generateNSArrayRGLFile:(NSArray<RGLFile*>*)list {
468
- NSMutableArray *output = [NSMutableArray new];
469
- for(RGLFile* item in list)
470
- if(item != nil)
471
- [output addObject:[self generateRGLFile:item]];
472
- return output;
473
- }
474
-
475
- +(NSMutableDictionary*)generateRGLFile:(RGLFile*)file {
476
- NSMutableDictionary *output = [NSMutableDictionary new];
477
-
478
- output[@"fileID"] = file.fileID;
479
- output[@"typeName"] = file.typeName;
480
- output[@"pAStatus"] = [NSNumber numberWithInteger:file.pAStatus];
481
- output[@"readingStatus"] = [NSNumber numberWithInteger:file.readingStatus];
482
- output[@"readingTime"] = [NSNumber numberWithInteger:file.readingTime];
483
- output[@"type"] = [NSNumber numberWithInteger:file.type];
484
- if(file.notifications != nil)
485
- output[@"notifications"] = [self generateNSArrayNSNumber:file.notifications];
486
- if(file.docFieldsText != nil)
487
- output[@"docFieldsText"] = [self generateNSArrayNSNumber:file.docFieldsText];
488
- if(file.docFieldsGraphics != nil)
489
- output[@"docFieldsGraphics"] = [self generateNSArrayNSNumber:file.docFieldsGraphics];
490
- if(file.docFieldsOriginals != nil)
491
- output[@"docFieldsOriginals"] = [self generateNSArrayNSNumber:file.docFieldsOriginals];
492
- if(file.fileData != nil)
493
- output[@"fileData"] = [self generateRGLFileData:file.fileData];
494
- if(file.certificates != nil)
495
- output[@"certificates"] = [self generateRGLSecurityObjectCertificates:file.certificates];
496
-
497
- return output;
498
- }
499
-
500
- +(NSMutableDictionary*)generateRGLFileData:(RGLFileData*)fileData {
501
- NSMutableDictionary *output = [NSMutableDictionary new];
502
-
503
- output[@"data"] = fileData.data;
504
- output[@"length"] = [NSNumber numberWithInteger:fileData.length];
505
- output[@"type"] = [NSNumber numberWithInteger:fileData.type];
506
- output[@"status"] = [NSNumber numberWithDouble:fileData.status];
507
-
508
- return output;
509
- }
510
-
511
- +(NSMutableDictionary*)generateRGLSecurityObjectCertificates:(RGLSecurityObjectCertificates*)certificates {
512
- NSMutableDictionary *output = [NSMutableDictionary new];
513
-
514
- if(certificates.securityObject != nil)
515
- output[@"securityObject"] = [self generateRGLCertificateData:certificates.securityObject];
516
-
517
- return output;
518
- }
519
-
520
- +(NSMutableDictionary*)generateRGLCertificateData:(RGLCertificateData*)certificateData {
521
- NSMutableDictionary *output = [NSMutableDictionary new];
522
-
523
- output[@"data"] = certificateData.data;
524
- output[@"length"] = [NSNumber numberWithInteger:certificateData.length];
525
-
526
- return output;
527
- }
528
-
529
- +(NSMutableArray*)generateNSArrayRGLSecurityObject:(NSArray<RGLSecurityObject*>*)list {
530
- NSMutableArray *output = [NSMutableArray new];
531
- for(RGLSecurityObject* item in list)
532
- if(item != nil)
533
- [output addObject:[self generateRGLSecurityObject:item]];
534
- return output;
535
- }
536
-
537
- +(NSMutableDictionary*)generateRGLSecurityObject:(RGLSecurityObject*)securityObject {
538
- NSMutableDictionary *output = [NSMutableDictionary new];
539
-
540
- output[@"objectType"] = securityObject.objectType;
541
- output[@"fileReference"] = [NSNumber numberWithInteger:securityObject.fileReference];
542
- if(securityObject.signerInfos != nil)
543
- output[@"signerInfos"] = [self generateNSArrayRGLSignerInfo:securityObject.signerInfos];
544
- if(securityObject.notifications != nil)
545
- output[@"notifications"] = [self generateNSArrayNSNumber:securityObject.notifications];
546
-
547
- return output;
548
- }
549
-
550
- +(NSMutableArray*)generateNSArrayRGLSignerInfo:(NSArray<RGLSignerInfo*>*)list {
551
- NSMutableArray *output = [NSMutableArray new];
552
- for(RGLSignerInfo* item in list)
553
- if(item != nil)
554
- [output addObject:[self generateRGLSignerInfo:item]];
555
- return output;
556
- }
557
-
558
- +(NSMutableDictionary*)generateRGLSignerInfo:(RGLSignerInfo*)signerInfo {
559
- NSMutableDictionary *output = [NSMutableDictionary new];
560
-
561
- output[@"dataToHash"] = signerInfo.dataToHash;
562
- output[@"digestAlgorithm"] = signerInfo.digestAlgorithm;
563
- output[@"signatureAlgorithm"] = signerInfo.signatureAlgorithm;
564
- output[@"version"] = [NSNumber numberWithInteger:signerInfo.version];
565
- output[@"paStatus"] = [NSNumber numberWithDouble:signerInfo.paStatus];
566
- if(signerInfo.notifications != nil)
567
- output[@"notifications"] = [self generateNSArrayNSNumber:signerInfo.notifications];
568
- if(signerInfo.issuer != nil)
569
- output[@"issuer"] = [self generateRGLAuthority:signerInfo.issuer];
570
- if(signerInfo.serialNumber != nil)
571
- output[@"serialNumber"] = [self generateRGLRFIDValue:signerInfo.serialNumber];
572
- if(signerInfo.signature != nil)
573
- output[@"signature"] = [self generateRGLRFIDValue:signerInfo.signature];
574
- if(signerInfo.subjectKeyIdentifier != nil)
575
- output[@"subjectKeyIdentifier"] = [self generateRGLRFIDValue:signerInfo.subjectKeyIdentifier];
576
- if(signerInfo.signedAttributes != nil)
577
- output[@"signedAttributes"] = [self generateNSArrayRGLExtension:signerInfo.signedAttributes];
578
- if(signerInfo.certificateChain != nil)
579
- output[@"certificateChain"] = [self generateNSArrayRGLCertificateChain:signerInfo.certificateChain];
580
-
581
- return output;
582
- }
583
-
584
- +(NSMutableDictionary*)generateRGLAuthority:(RGLAuthority*)authority {
585
- NSMutableDictionary *output = [NSMutableDictionary new];
586
-
587
- output[@"data"] = authority.data;
588
- if(authority.friendlyName != nil)
589
- output[@"friendlyName"] = [self generateRGLRFIDValue:authority.friendlyName];
590
- if(authority.attributes != nil)
591
- output[@"attributes"] = [self generateNSArrayRGLAttribute:authority.attributes];
592
-
593
- return output;
594
- }
595
-
596
- +(NSMutableDictionary*)generateRGLRFIDValue:(RGLRFIDValue*)value {
597
- NSMutableDictionary *output = [NSMutableDictionary new];
598
-
599
- output[@"data"] = value.data;
600
- output[@"format"] = value.format;
601
- output[@"length"] = [NSNumber numberWithInteger:value.length];
602
- output[@"type"] = [NSNumber numberWithInteger:value.type];
603
- output[@"status"] = [NSNumber numberWithDouble:value.status];
604
-
605
- return output;
606
- }
607
-
608
- +(NSMutableArray*)generateNSArrayRGLAttribute:(NSArray<RGLAttribute*>*)list {
609
- NSMutableArray *output = [NSMutableArray new];
610
- for(RGLAttribute* item in list)
611
- if(item != nil)
612
- [output addObject:[self generateRGLAttribute:item]];
613
- return output;
614
- }
615
-
616
- +(NSMutableDictionary*)generateRGLAttribute:(RGLAttribute*)attribute {
617
- NSMutableDictionary *output = [NSMutableDictionary new];
618
-
619
- output[@"type"] = attribute.type;
620
- if(attribute.value != nil)
621
- output[@"value"] = [self generateRGLRFIDValue:attribute.value];
622
-
623
- return output;
624
- }
625
-
626
- +(NSMutableArray*)generateNSArrayRGLExtension:(NSArray<RGLExtension*>*)list {
627
- NSMutableArray *output = [NSMutableArray new];
628
- for(RGLExtension* item in list)
629
- if(item != nil)
630
- [output addObject:[self generateRGLExtension:item]];
631
- return output;
632
- }
633
-
634
- +(NSMutableDictionary*)generateRGLExtension:(RGLExtension*)extension {
635
- NSMutableDictionary *output = [NSMutableDictionary new];
636
-
637
- output[@"data"] = extension.data;
638
- output[@"type"] = extension.type;
639
-
640
- return output;
641
- }
642
-
643
- +(NSMutableArray*)generateNSArrayRGLCertificateChain:(NSArray<RGLCertificateChain*>*)list {
644
- NSMutableArray *output = [NSMutableArray new];
645
- for(RGLCertificateChain* item in list)
646
- if(item != nil)
647
- [output addObject:[self generateRGLCertificateChain:item]];
648
- return output;
649
- }
650
-
651
- +(NSMutableDictionary*)generateRGLCertificateChain:(RGLCertificateChain*)certificateChain {
652
- NSMutableDictionary *output = [NSMutableDictionary new];
653
-
654
- output[@"serialNumber"] = certificateChain.serialNumber;
655
- output[@"signatureAlgorithm"] = certificateChain.signatureAlgorithm;
656
- output[@"subjectPKAlgorithm"] = certificateChain.subjectPKAlgorithm;
657
- output[@"origin"] = [NSNumber numberWithInteger:certificateChain.origin];
658
- output[@"version"] = [NSNumber numberWithInteger:certificateChain.version];
659
- output[@"type"] = [NSNumber numberWithInteger:certificateChain.type];
660
- output[@"paStatus"] = [NSNumber numberWithDouble:certificateChain.paStatus];
661
- if(certificateChain.notifications != nil)
662
- output[@"notifications"] = [self generateNSArrayNSNumber:certificateChain.notifications];
663
- if(certificateChain.fileName != nil)
664
- output[@"fileName"] = [self generateRGLRFIDValue:certificateChain.fileName];
665
- if(certificateChain.issuer != nil)
666
- output[@"issuer"] = [self generateRGLAuthority:certificateChain.issuer];
667
- if(certificateChain.subject != nil)
668
- output[@"subject"] = [self generateRGLAuthority:certificateChain.subject];
669
- if(certificateChain.extensions != nil)
670
- output[@"extensions"] = [self generateNSArrayRGLExtension:certificateChain.extensions];
671
- if(certificateChain.validity != nil)
672
- output[@"validity"] = [self generateRGLValidity:certificateChain.validity];
673
-
674
- return output;
675
- }
676
-
677
- +(NSMutableDictionary*)generateRGLValidity:(RGLValidity*)validity {
678
- NSMutableDictionary *output = [NSMutableDictionary new];
679
-
680
- if(validity.notAfter != nil)
681
- output[@"fileName"] = [self generateRGLRFIDValue:validity.notAfter];
682
- if(validity.notBefore != nil)
683
- output[@"fileName"] = [self generateRGLRFIDValue:validity.notBefore];
684
-
685
- return output;
686
- }
687
-
688
- +(RGLPKDCertificate*)RGLPKDCertificateFromJson:(NSDictionary*)dict {
689
- NSInteger type = [[dict valueForKey:@"resourceType"] integerValue];
690
- NSData* binaryData = [[NSData alloc] initWithBase64EncodedString:[dict objectForKey:@"binaryData"] options:0];
691
- NSData* privateKey = [dict objectForKey:@"privateKey"] != nil ? [[NSData alloc] initWithBase64EncodedString:[dict objectForKey:@"privateKey"] options:0] : nil;
692
-
693
- return [[RGLPKDCertificate alloc] initWithBinaryData:binaryData resourceType:type privateKey:privateKey];
694
- }
695
-
696
- +(NSInteger)generateDocReaderAction:(RGLDocReaderAction)action {
697
- NSInteger output = 0;
698
- switch (action) {
699
- case RGLDocReaderActionComplete:
700
- output = 1;
701
- break;
702
- case RGLDocReaderActionProcess:
703
- output = 0;
704
- break;
705
- case RGLDocReaderActionMorePagesAvailable:
706
- output = 8;
707
- break;
708
- case RGLDocReaderActionCancel:
709
- output = 2;
710
- break;
711
- case RGLDocReaderActionError:
712
- output = 3;
713
- break;
714
- default:
715
- break;
716
- }
717
-
718
- return output;
719
- }
720
-
721
- +(NSInteger)generateRFIDCompleteAction:(RGLRFIDCompleteAction)action {
722
- NSInteger output = 0;
723
- switch (action) {
724
- case RGLRFIDCompleteActionComplete:
725
- output = 10;
726
- break;
727
- case RGLRFIDCompleteActionError:
728
- output = 3;
729
- break;
730
- case RGLRFIDCompleteActionCancel:
731
- output = 2;
732
- break;
733
- case RGLRFIDCompleteActionSessionRestarted:
734
- output = 1;
735
- break;
736
- default:
737
- break;
738
- }
739
-
740
- return output;
741
- }
742
-
743
- +(NSInteger)generateRFIDNotificationAction:(RGLRFIDNotificationAction)action {
744
- return 5;
745
- }
746
-
747
- +(NSString*)generateCompletion:(NSInteger)action :(RGLDocumentReaderResults*)results :(NSError*)error :(RGLRFIDNotify*)notify {
748
- NSMutableDictionary *output = [NSMutableDictionary new];
749
-
750
- switch (action) {
751
- case 0:
752
- output[@"results"] = [self generateResultsWithNotification:[self generateRFIDNotify:notify]];
753
- break;
754
- case 1:
755
- output[@"results"] = [self generateResults:results];
756
- break;
757
- case 2:
758
- output[@"results"] = [self generateResults:results];
759
- break;
760
- case 3:
761
- output[@"results"] = [self generateResults:results];
762
- break;
763
- case 5:
764
- output[@"results"] = [self generateResultsWithNotification:[self generateRFIDNotify:notify]];
765
- break;
766
- case 6:
767
- output[@"results"] = [self generateResultsWithNotification:[self generateRFIDNotify:notify]];
768
- break;
769
- case 8:
770
- output[@"results"] = [self generateResults:results];
771
- break;
772
- case 10:
773
- output[@"results"] = [self generateResultsWithRFID :results :1];
774
- action = 1;
775
- break;
776
- default:
777
- break;
778
- }
779
-
780
- output[@"action"] = [NSNumber numberWithInteger:action];
781
- output[@"error"] = [self generateNSError:error];
782
-
783
- return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:output options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
784
- }
785
-
786
- +(NSMutableDictionary*)generateResultsWithNotification:(NSMutableDictionary*)dict {
787
- NSMutableDictionary *output = [NSMutableDictionary new];
788
-
789
- output[@"documentReaderNotification"] = dict;
790
-
791
- return output;
792
- }
793
-
794
- +(NSMutableDictionary*)generateResultsWithRFID:(RGLDocumentReaderResults*)results :(NSInteger)rfidResult {
795
- NSMutableDictionary *output = [self generateResults:results];
796
-
797
- output[@"rfidResult"] = [NSNumber numberWithInteger:rfidResult];
798
-
799
- return output;
800
- }
801
-
802
- +(NSMutableDictionary*)generateNSError:(NSError*)error {
803
- NSMutableDictionary *output = [NSMutableDictionary new];
804
-
805
- output[@"code"] = [NSNumber numberWithInteger: error.code];
806
- output[@"domain"] = error.domain;
807
-
808
- return output;
809
- }
810
-
811
- +(NSMutableDictionary*)generateRFIDNotify:(RGLRFIDNotify*)notify {
812
- NSMutableDictionary *output = [NSMutableDictionary new];
813
-
814
- output[@"code"] = [NSNumber numberWithInteger:notify.code];
815
- output[@"number"] = [NSNumber numberWithInt:notify.number];
816
- output[@"value"] = [NSNumber numberWithDouble:notify.value];
817
-
818
- return output;
819
- }
820
-
821
- @end