grizzly_ber 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/grizzly_ber.rb +28 -1
- data/lib/grizzly_tag.rb +148 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 077a5e4209ed67b5e742483eb8d03cecadbc1c7b
|
4
|
+
data.tar.gz: 1d9297a29825dc84a885acc36cb9099a969faa16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5acf3a967abb26123a6ed9ec2a09a0f54f02d21092709eb4f50867c67c3f468689e05f1d9dbbedfc1be958f9618ea846eef046ba37684926404e45d99c0943d
|
7
|
+
data.tar.gz: 8b72fb01f4a56fca75d944c51aad603303c6174531f8e36d40645fc477665984c7efea736e4e71ee2d33645d31e1328fcef9170989e4c8fae5b67dcaddb6d5fe
|
data/lib/grizzly_ber.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'grizzly_tag'
|
2
|
+
|
1
3
|
class GrizzlyBer
|
2
4
|
attr_reader :value, :tag
|
3
5
|
|
@@ -27,12 +29,22 @@ class GrizzlyBer
|
|
27
29
|
@value = [] if isConstruct? and @value.nil?
|
28
30
|
end
|
29
31
|
|
30
|
-
def find(
|
32
|
+
def find(tag_or_name)
|
33
|
+
if tag_or_name.is_a? String
|
34
|
+
tag = GrizzlyTag.tag_from_name(tag_or_name)
|
35
|
+
else
|
36
|
+
tag = tag_or_name
|
37
|
+
end
|
31
38
|
return self if @tag == tag
|
32
39
|
return nil unless isConstruct?
|
33
40
|
@value.find{|tlv| tlv.find(tag) != nil}
|
34
41
|
end
|
35
42
|
|
43
|
+
def remove!(tag_or_name)
|
44
|
+
tag_to_remove = find(tag_or_name)
|
45
|
+
@value.delete tag_to_remove unless tag_to_remove.nil?
|
46
|
+
end
|
47
|
+
|
36
48
|
def decode_hex(hex_string)
|
37
49
|
decode_binary([hex_string].pack("H*"))
|
38
50
|
end
|
@@ -73,6 +85,21 @@ class GrizzlyBer
|
|
73
85
|
end
|
74
86
|
end
|
75
87
|
|
88
|
+
def to_s(indent_size: 0)
|
89
|
+
indent = " " * 3 * indent_size
|
90
|
+
info = GrizzlyTag.tagged(@tag) || {:name => "Unknown Tag", :description => "Unknown"}
|
91
|
+
output = "#{indent}#{@tag.to_s(16).upcase}: #{info[:name]}\n"
|
92
|
+
output += "#{indent} Description: #{info[:description]}\n"
|
93
|
+
if @value.is_a? Array
|
94
|
+
output += @value.reduce("") { |string, tlv| string += tlv.to_s(indent_size: indent_size+1)}
|
95
|
+
else
|
96
|
+
output += "#{indent} Value: #{@value}"
|
97
|
+
output += ", \"#{[@value].pack("H*")}\"" if info[:format] == :string
|
98
|
+
output += "\n"
|
99
|
+
end
|
100
|
+
output
|
101
|
+
end
|
102
|
+
|
76
103
|
protected
|
77
104
|
|
78
105
|
def length
|
data/lib/grizzly_tag.rb
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
module GrizzlyTag
|
2
|
+
def self.new_tag(params)
|
3
|
+
params[:format] ||= :binary
|
4
|
+
params
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
@@tags
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.tagged(tag)
|
12
|
+
@@tags.find{|o| o[:tag] == tag}
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.named(name)
|
16
|
+
@@tags.find{|o| o[:name] == name}
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.tag_from_name(name)
|
20
|
+
tag = self.named(name)
|
21
|
+
tag &&= tag[:tag]
|
22
|
+
end
|
23
|
+
|
24
|
+
@@tags = [
|
25
|
+
#Tags taken from EMV 4.3 Book 3 Annex A
|
26
|
+
new_tag(:tag => 0x5F57, :name => "Account Type", :description => "Indicates the type of account selected on the terminal, coded as specified in Annex G"),
|
27
|
+
new_tag(:tag => 0x9F01, :name => "Acquirer Identifier", :description => "Uniquely identifies the acquirer within each payment system"),
|
28
|
+
new_tag(:tag => 0x9F40, :name => "Additional Terminal Capabilities", :description => "Indicates the data input and output capabilities of the terminal"),
|
29
|
+
new_tag(:tag => 0x81, :name => "Amount, Authorised (Binary)", :description => "Authorised amount of the transaction (excluding adjustments)"),
|
30
|
+
new_tag(:tag => 0x9F02, :name => "Amount, Authorised (Numeric)", :description => "Authorised amount of the transaction (excluding adjustments)"),
|
31
|
+
new_tag(:tag => 0x9F04, :name => "Amount, Other (Binary)", :description => "Secondary amount associated with the transaction representing a cashback amount"),
|
32
|
+
new_tag(:tag => 0x9F03, :name => "Amount, Other (Numeric)", :description => "Secondary amount associated with the transaction representing a cashback amount"),
|
33
|
+
new_tag(:tag => 0x9F3A, :name => "Amount, Reference Currency", :description => "Authorised amount expressed in the reference currency"),
|
34
|
+
new_tag(:tag => 0x9F26, :name => "Application Cryptogram", :description => "Cryptogram returned by the ICC in response of the GENERATE AC command"),
|
35
|
+
new_tag(:tag => 0x9F42, :name => "Application Currency Code", :description => "Indicates the currency in which the account is managed according to ISO 4217"),
|
36
|
+
new_tag(:tag => 0x9F44, :name => "Application Currency Exponent", :description => "Indicates the implied position of the decimal point from the right of the amount represented according to ISO 4217"),
|
37
|
+
new_tag(:tag => 0x9F05, :name => "Application Discretionary Data", :description => "Issuer or payment system specified data relating to the application"),
|
38
|
+
new_tag(:tag => 0x5F25, :name => "Application Effective Date", :description => "Date from which the application may be used"),
|
39
|
+
new_tag(:tag => 0x5F24, :name => "Application Expiration Date", :description => "Date after which application expires"),
|
40
|
+
new_tag(:tag => 0x94, :name => "Application File Locator (AFL)", :description => "Indicates the location (SFI, range of records) of the AEFs related to a given application"),
|
41
|
+
new_tag(:tag => 0x4F, :name => "Application Dedicated File (ADF) Name", :description => "Identifies the application as described in ISO/IEC 7816-5"),
|
42
|
+
new_tag(:tag => 0x9F06, :name => "Application Identifier (AID) – terminal", :description => "Identifies the application as described in ISO/IEC 7816-5"),
|
43
|
+
new_tag(:tag => 0x82, :name => "Application Interchange Profile", :description => "Indicates the capabilities of the card to support specific functions in the application"),
|
44
|
+
new_tag(:tag => 0x50, :name => "Application Label", :format => :string, :description => "Mnemonic associated with the AID according to ISO/IEC 7816-5"),
|
45
|
+
new_tag(:tag => 0x9F12, :name => "Application Preferred Name", :format => :string, :description => "Preferred mnemonic associated with the AID"),
|
46
|
+
new_tag(:tag => 0x5A, :name => "Application Primary Account Number (PAN)", :description => "Valid cardholder account number"),
|
47
|
+
new_tag(:tag => 0x5F34, :name => "Application Primary Account Number (PAN) Sequence Number", :description => "Identifies and differentiates cards with the same PAN"),
|
48
|
+
new_tag(:tag => 0x87, :name => "Application Priority Indicator", :description => "Indicates the priority of a given application or group of applications in a directory"),
|
49
|
+
new_tag(:tag => 0x9F3B, :name => "Application Reference Currency", :description => "1-4 currency codes used between the terminal and the ICC when the Transaction Currency Code is different from the Application Currency Code; each code is 3 digits according to ISO 4217"),
|
50
|
+
new_tag(:tag => 0x9F43, :name => "Application Reference Currency Exponent", :description => "Indicates the implied position of the decimal point from the right of the amount, for each of the 1-4 reference currencies represented according to ISO 4217"),
|
51
|
+
new_tag(:tag => 0x70, :name => "Application Template", :description => "Contains one or more data objects relevant to an application directory entry according to ISO/IEC 7816-5"),
|
52
|
+
new_tag(:tag => 0x9F36, :name => "Application Transaction Counter (ATC)", :description => "Counter maintained by the application in the ICC (incrementing the ATC is managed by the ICC)"),
|
53
|
+
new_tag(:tag => 0x9F07, :name => "Application Usage Control", :description => "Indicates issuer’s specified restrictions on the geographic usage and services allowed for the application"),
|
54
|
+
new_tag(:tag => 0x9F08, :name => "Application Version Number", :description => "Version number assigned by the payment system for the application"),
|
55
|
+
new_tag(:tag => 0x9F09, :name => "Application Version Number", :description => "Version number assigned by the payment system for the application"),
|
56
|
+
new_tag(:tag => 0x89, :name => "Authorisation Code", :description => "Value generated by the authorisation authority for an approved transaction"),
|
57
|
+
new_tag(:tag => 0x8A, :name => "Authorisation Response Code", :format => :string, :description => "Code that defines the disposition of a message"),
|
58
|
+
new_tag(:tag => 0x5F54, :name => "Bank Identifier Code (BIC)", :description => "Uniquely identifies a bank as defined in ISO 9362."),
|
59
|
+
new_tag(:tag => 0x8C, :name => "Risk Management Data Object List 1 (CDOL1)", :description => "List of data objects (tag and length) to be passed to the ICC in the first GENERATE AC command"),
|
60
|
+
new_tag(:tag => 0x8D, :name => "Card Risk Management Data Object List 2 (CDOL2)", :description => "List of data objects (tag and length) to be passed to the ICC in the second GENERATE AC command"),
|
61
|
+
new_tag(:tag => 0x5F20, :name => "Cardholder Name", :format => :string, :description => "Indicates cardholder name according to ISO 7813"),
|
62
|
+
new_tag(:tag => 0x9F0B, :name => "Cardholder Name Extended", :format => :string, :description => "Indicates the whole cardholder name when greater than 26 characters using the same coding convention as in ISO 7813"),
|
63
|
+
new_tag(:tag => 0x8E, :name => "Cardholder Verification Method (CVM) List", :description => "Identifies a method of verification of the cardholder supported by the application"),
|
64
|
+
new_tag(:tag => 0x9F34, :name => "Cardholder Verification Method (CVM) Results", :description => "Indicates the results of the last CVM performed"),
|
65
|
+
new_tag(:tag => 0x8F, :name => "Certification Authority Public Key Index", :description => "Identifies the certification authority’s public key in conjunction with the RID"),
|
66
|
+
new_tag(:tag => 0x9F22, :name => "Certification Authority Public Key Index", :description => "Identifies the certification authority’s public key in conjunction with the RID"),
|
67
|
+
new_tag(:tag => 0x83, :name => "Command Template", :description => "Identifies the data field of a command message"),
|
68
|
+
new_tag(:tag => 0x9F27, :name => "Cryptogram Information Data", :description => "Indicates the type of cryptogram and the actions to be performed by the terminal"),
|
69
|
+
new_tag(:tag => 0x9F45, :name => "Data Authentication Code", :description => "An issuer assigned value that is retained by the terminal during the verification process of the Signed Static Application Data"),
|
70
|
+
new_tag(:tag => 0x84, :name => "Dedicated File (DF) Name", :description => "Identifies the name of the DF as described in ISO/IEC 7816-4"),
|
71
|
+
new_tag(:tag => 0x9D, :name => "Directory Definition File (DDF) Name", :description => "Identifies the name of a DF associated with a directory"),
|
72
|
+
new_tag(:tag => 0x73, :name => "Directory Discretionary Template", :description => "Issuer discretionary part of the directory according to ISO/IEC 7816-5"),
|
73
|
+
new_tag(:tag => 0x9F49, :name => "Dynamic Data Authentication Data Object List (DDOL)", :description => "List of data objects (tag and length) to be passed to the ICC in the INTERNAL AUTHENTICATE command"),
|
74
|
+
new_tag(:tag => 0xBF0C, :name => "File Control Information (FCI) Issuer Discretionary Data", :description => "Issuer discretionary part of the FCI"),
|
75
|
+
new_tag(:tag => 0xA5, :name => "File Control Information (FCI) Proprietary Template", :description => "Identifies the data object proprietary to this specification in the FCI template according to ISO/IEC 7816-4"),
|
76
|
+
new_tag(:tag => 0x6F, :name => "File Control Information (FCI) Template", :description => "Identifies the FCI template according to ISO/IEC 7816-4"),
|
77
|
+
new_tag(:tag => 0x9F4C, :name => "ICC Dynamic Number", :description => "Time-variant number generated by the ICC, to be captured by the terminal"),
|
78
|
+
new_tag(:tag => 0x9F2D, :name => "Integrated Circuit Card (ICC) PIN Encipherment Public Key Certificate", :description => "ICC PIN Encipherment Public Key certified by the issuer"),
|
79
|
+
new_tag(:tag => 0x9F2E, :name => "Integrated Circuit Card (ICC) PIN Encipherment Public Key Exponent", :description => "ICC PIN Encipherment Public Key Exponent used for PIN encipherment"),
|
80
|
+
new_tag(:tag => 0x9F2F, :name => "Integrated Circuit Card (ICC) PIN Encipherment Public Key Remainder", :description => "Remaining digits of the ICC PIN Encipherment Public Key Modulus"),
|
81
|
+
new_tag(:tag => 0x9F46, :name => "Integrated Circuit Card (ICC) Public Key Certificate", :description => "ICC Public Key certified by the issuer"),
|
82
|
+
new_tag(:tag => 0x9F47, :name => "Integrated Circuit Card (ICC) Public Key Exponent", :description => "ICC Public Key Exponent used for the verification of the Signed Dynamic Application Data"),
|
83
|
+
new_tag(:tag => 0x9F48, :name => "Integrated Circuit Card (ICC) Public Key Remainder", :description => "Remaining digits of the ICC Public Key Modulus"),
|
84
|
+
new_tag(:tag => 0x9F1E, :name => "Interface Device (IFD) Serial Number", :format => :string, :description => "Unique and permanent serial number assigned to the IFD by the manufacturer"),
|
85
|
+
new_tag(:tag => 0x5F53, :name => "International Bank Account Number (IBAN)", :description => "Uniquely identifies the account of a customer at a financial institution as defined in ISO 13616."),
|
86
|
+
new_tag(:tag => 0x9F0D, :name => "Issuer Action Code - Default", :description => "Specifies the issuer’s conditions that cause a transaction to be rejected if it might have been approved online, but the terminal is unable to process the transaction online"),
|
87
|
+
new_tag(:tag => 0x9F0E, :name => "Issuer Action Code - Denial", :description => "Specifies the issuer’s conditions that cause the denial of a transaction without attempt to go online"),
|
88
|
+
new_tag(:tag => 0x9F0F, :name => "Issuer Action Code - Online", :description => "Specifies the issuer’s conditions that cause a transaction to be transmitted online"),
|
89
|
+
new_tag(:tag => 0x9F10, :name => "Issuer Application Data", :description => "Contains proprietary application data for transmission to the issuer in an online transaction."),
|
90
|
+
new_tag(:tag => 0x91, :name => "Issuer Authentication Data", :description => "Data sent to the ICC for online issuer authentication"),
|
91
|
+
new_tag(:tag => 0x9F11, :name => "Issuer Code Table Index", :description => "Indicates the code table according to ISO/IEC 8859 for displaying the Application Preferred Name"),
|
92
|
+
new_tag(:tag => 0x5F28, :name => "Issuer Country Code", :description => "Indicates the country of the issuer according to ISO 3166"),
|
93
|
+
new_tag(:tag => 0x5F55, :name => "Issuer Country Code (alpha2 format)", :description => "Indicates the country of the issuer as defined in ISO 3166 (using a 2 character alphabetic code)"),
|
94
|
+
new_tag(:tag => 0x5F56, :name => "Issuer Country Code (alpha3 format)", :description => "Indicates the country of the issuer as defined in ISO 3166 (using a 3 character alphabetic code)"),
|
95
|
+
new_tag(:tag => 0x42, :name => "Issuer Identification Number (IIN)", :description => "The number that identifies the major industry and the card issuer and that forms the first part of the Primary Account Number (PAN)"),
|
96
|
+
new_tag(:tag => 0x90, :name => "Issuer Public Key Certificate", :description => "Issuer public key certified by a certification authority"),
|
97
|
+
new_tag(:tag => 0x9F32, :name => "Issuer Public Key Exponent", :description => "Issuer public key exponent used for the verification of the Signed Static Application Data and the ICC Public Key Certificate"),
|
98
|
+
new_tag(:tag => 0x92, :name => "Issuer Public Key Remainder", :description => "Remaining digits of the Issuer Public Key Modulus"),
|
99
|
+
new_tag(:tag => 0x86, :name => "Issuer Script Command", :description => "Contains a command for transmission to the ICC"),
|
100
|
+
new_tag(:tag => 0x9F18, :name => "Issuer Script Identifier", :description => "Identification of the Issuer Script"),
|
101
|
+
new_tag(:tag => 0x71, :name => "Issuer Script Template 1", :description => "Contains proprietary issuer data for transmission to the ICC before the second GENERATE AC command"),
|
102
|
+
new_tag(:tag => 0x72, :name => "Issuer Script Template 2", :description => "Contains proprietary issuer data for transmission to the ICC after the second GENERATE AC command"),
|
103
|
+
new_tag(:tag => 0x5F50, :name => "Issuer URL", :format => :string, :description => "The URL provides the location of the Issuer’s Library Server on the Internet."),
|
104
|
+
new_tag(:tag => 0x5F2D, :name => "Language Preference", :format => :string, :description => "1-4 languages stored in order of preference, each represented by 2 alphabetical characters according to ISO 639"),
|
105
|
+
new_tag(:tag => 0x9F13, :name => "Last Online Application Transaction Counter (ATC) Register", :description => "ATC value of the last transaction that went online"),
|
106
|
+
new_tag(:tag => 0x9F4D, :name => "Log Entry", :description => "Provides the SFI of the Transaction Log file and its number of records"),
|
107
|
+
new_tag(:tag => 0x9F4F, :name => "Log Format", :description => "List (in tag and length format) of data objects representing the logged data elements that are passed to the terminal when a transaction log record is read"),
|
108
|
+
new_tag(:tag => 0x9F14, :name => "Lower Consecutive Offline Limit", :description => "Issuer-specified preference for the maximum number of consecutive offline transactions for this ICC application allowed in a terminal with online capability"),
|
109
|
+
new_tag(:tag => 0x9F15, :name => "Merchant Category Code", :description => "Classifies the type of business being done by the merchant, represented according to ISO 8583:1993 for Card Acceptor Business Code"),
|
110
|
+
new_tag(:tag => 0x9F16, :name => "Merchant Identifier", :format => :string, :description => "When concatenated with the Acquirer Identifier, uniquely identifies a given merchant"),
|
111
|
+
new_tag(:tag => 0x9F4E, :name => "Merchant Name and Location", :format => :string, :description => "Indicates the name and location of the merchant"),
|
112
|
+
new_tag(:tag => 0x9F17, :name => "Personal Identification Number (PIN) Try Counter", :description => "Number of PIN tries remaining"),
|
113
|
+
new_tag(:tag => 0x9F39, :name => "Point-of-Service (POS) Entry Mode", :description => "Indicates the method by which the PAN was entered, according to the first two digits of the ISO 8583:1987 POS Entry Mode"),
|
114
|
+
new_tag(:tag => 0x9F38, :name => "Processing Options Data Object List (PDOL)", :description => "Contains a list of terminal resident data objects (tags and lengths) needed by the ICC in processing the GET PROCESSING OPTIONS command"),
|
115
|
+
new_tag(:tag => 0x70, :name => "READ RECORD Response Message Template", :description => "Contains the contents of the record read. (Mandatory for SFIs 1-10. Response messages for SFIs 11-30 are outside the scope of EMV, but may use template '70')"),
|
116
|
+
new_tag(:tag => 0x80, :name => "Response Message Template Format 1", :description => "Contains the data objects (without tags and lengths) returned by the ICC in response to a command"),
|
117
|
+
new_tag(:tag => 0x77, :name => "Response Message Template Format 2", :description => "Contains the data objects (with tags and lengths) returned by the ICC in response to a command"),
|
118
|
+
new_tag(:tag => 0x5F30, :name => "Service Code", :description => "Service code as defined in ISO/IEC 7813 for track 1 and track 2"),
|
119
|
+
new_tag(:tag => 0x88, :name => "Short File Identifier (SFI)", :description => "Identifies the AEF referenced in commands related to a given ADF or DDF. It is a binary data object having a value in the range 1 to 30 and with the three high order bits set to zero."),
|
120
|
+
new_tag(:tag => 0x9F4B, :name => "Signed Dynamic Application Data", :description => "Digital signature on critical application parameters for DDA or CDA"),
|
121
|
+
new_tag(:tag => 0x93, :name => "Signed Static Application Data", :description => "Digital signature on critical application parameters for SDA"),
|
122
|
+
new_tag(:tag => 0x9F4A, :name => "Static Data Authentication Tag List", :description => "List of tags of primitive data objects defined in this specification whose value fields are to be included in the Signed Static or Dynamic Application Data"),
|
123
|
+
new_tag(:tag => 0x9F33, :name => "Terminal Capabilities", :description => "Indicates the card data input, CVM, and security capabilities of the terminal"),
|
124
|
+
new_tag(:tag => 0x9F1A, :name => "Terminal Country Code", :description => "Indicates the country of the terminal, represented according to ISO 3166"),
|
125
|
+
new_tag(:tag => 0x9F1B, :name => "Terminal Floor Limit", :description => "Indicates the floor limit in the terminal in conjunction with the AID"),
|
126
|
+
new_tag(:tag => 0x9F1C, :name => "Terminal Identification", :format => :string, :description => "Designates the unique location of a terminal at a merchant"),
|
127
|
+
new_tag(:tag => 0x9F1D, :name => "Terminal Risk Management Data", :description => "Application-specific value used by the card for risk management purposes"),
|
128
|
+
new_tag(:tag => 0x9F35, :name => "Terminal Type", :description => "Indicates the environment of the terminal, its communications capability, and its operational control"),
|
129
|
+
new_tag(:tag => 0x95, :name => "Terminal Verification Results", :description => "Status of the different functions as seen from the terminal"),
|
130
|
+
new_tag(:tag => 0x9F1F, :name => "Track 1 Discretionary Data", :description => "Discretionary part of track 1 according to ISO/IEC 7813"),
|
131
|
+
new_tag(:tag => 0x9F20, :name => "Track 2 Discretionary Data", :description => "Discretionary part of track 2 according to ISO/IEC 7813"),
|
132
|
+
new_tag(:tag => 0x57, :name => "Track 2 Equivalent Data", :description => "Contains the data elements of track 2 according to ISO/IEC 7813, excluding start sentinel, end sentinel, and Longitudinal Redundancy Check (LRC)"),
|
133
|
+
new_tag(:tag => 0x97, :name => "Transaction Certificate Data Object List (TDOL)", :description => "List of data objects (tag and length) to be used by the terminal in generating the TC Hash Value"),
|
134
|
+
new_tag(:tag => 0x98, :name => "Transaction Certificate (TC) Hash Value", :description => "Result of a hash function specified in Book 2, Annex B3.1"),
|
135
|
+
new_tag(:tag => 0x5F2A, :name => "Transaction Currency Code", :description => "Indicates the currency code of the transaction according to ISO 4217"),
|
136
|
+
new_tag(:tag => 0x5F36, :name => "Transaction Currency Exponent", :description => "Indicates the implied position of the decimal point from the right of the transaction amount represented according to ISO 4217"),
|
137
|
+
new_tag(:tag => 0x9A, :name => "Transaction Date", :description => "Local date that the transaction was authorised"),
|
138
|
+
new_tag(:tag => 0x99, :name => "Transaction Personal Identification Number (PIN) Data", :description => "Data entered by the cardholder for the purpose of the PIN verification"),
|
139
|
+
new_tag(:tag => 0x9F3C, :name => "Transaction Reference Currency Code", :description => "Code defining the common currency used by the terminal in case the Transaction Currency Code is different from the Application Currency Code"),
|
140
|
+
new_tag(:tag => 0x9F3D, :name => "Transaction Reference Currency Exponent", :description => "Indicates the implied position of the decimal point from the right of the transaction amount, with the Transaction Reference Currency Code represented according to ISO 4217"),
|
141
|
+
new_tag(:tag => 0x9F41, :name => "Transaction Sequence Counter", :description => "Counter maintained by the terminal that is incremented by one for each transaction"),
|
142
|
+
new_tag(:tag => 0x9B, :name => "Transaction Status Information", :description => "Indicates the functions performed in a transaction"),
|
143
|
+
new_tag(:tag => 0x9F21, :name => "Transaction Time", :description => "Local time that the transaction was authorised"),
|
144
|
+
new_tag(:tag => 0x9C, :name => "Transaction Type", :description => "Indicates the type of financial transaction, represented by the first two digits of the ISO 8583:1987 Processing Code. The actual values to be used for the Transaction Type data element are defined by the relevant payment system"),
|
145
|
+
new_tag(:tag => 0x9F37, :name => "Unpredictable Number", :description => "Value to provide variability and uniqueness to the generation of a cryptogram"),
|
146
|
+
new_tag(:tag => 0x9F23, :name => "Upper Consecutive Offline Limit", :description => "Issuer-specified preference for the maximum number of consecutive offline transactions for this ICC application allowed in a terminal without online capability"),
|
147
|
+
]
|
148
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grizzly_ber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Balsdon
|
@@ -17,6 +17,7 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- lib/grizzly_ber.rb
|
20
|
+
- lib/grizzly_tag.rb
|
20
21
|
homepage: ''
|
21
22
|
licenses:
|
22
23
|
- MIT
|
@@ -29,7 +30,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
30
|
requirements:
|
30
31
|
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
+
version: 2.0.0
|
33
34
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
35
|
requirements:
|
35
36
|
- - '>='
|