barocert 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a9a32c383242f5463e1ee60e9854113670b0c4c75dbf398815e17d5f0b0339e
4
- data.tar.gz: 629260bf762f566f4e540899f43317d8cd53b8cb931c6e909a558517a88ac3a4
3
+ metadata.gz: a4a46b9b6127298434c8c1a6763c4ed9eac6fc79748515e169abc54d5650ede8
4
+ data.tar.gz: e169439978bcfd675357ec61e6d52e51bce572581040f85dd557681f9f023c38
5
5
  SHA512:
6
- metadata.gz: 5591835632af50fa867e22ec12384b3e2317fd73e0a3b489590ebc3502ce73a44fb938c3ce6b74d5c9337ef8953bda0ce8e7bcbfb0b30117016be7fdb11919bd
7
- data.tar.gz: f9c5539e34d221338681868367915912597c1ab09bbfffc4682ea5315a2397f5b5072d991a5ba6af91faf78d0a21db79a34b2fd7016f46f0989f6ad637ad88ed
6
+ metadata.gz: 186137560001d949907c27a4577791e26f8e11ee563f195a28c6a673b9c22363f869ad17c3f8c9d3a61a875cb7828f25c5d7a5a1f9eb45d8e67edd33b2356b21
7
+ data.tar.gz: f4bd4317c949df844e91bca92735b5b80b910e2063db09eb653bcdf919962389586e88ab529008ad9cbf9164383b81a299ed23f6ccf8733dfd3a43c252341027
@@ -80,7 +80,7 @@ class KakaocertService < BarocertService
80
80
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
81
81
  end
82
82
  if identity.nil?
83
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
83
+ raise BarocertException.new('-99999999', '본인인증 요청정보가 입력되지 않았습니다.')
84
84
  end
85
85
  if identity["receiverHP"].to_s == ''
86
86
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -165,7 +165,7 @@ class KakaocertService < BarocertService
165
165
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
166
166
  end
167
167
  if sign.nil?
168
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
168
+ raise BarocertException.new('-99999999', '전자서명 요청정보가 입력되지 않았습니다.')
169
169
  end
170
170
  if sign["receiverHP"].to_s == ''
171
171
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -252,7 +252,7 @@ class KakaocertService < BarocertService
252
252
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
253
253
  end
254
254
  if multiSign.nil?
255
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
255
+ raise BarocertException.new('-99999999', '전자서명 요청정보가 입력되지 않았습니다.')
256
256
  end
257
257
  if multiSign["receiverHP"].to_s == ''
258
258
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -344,7 +344,7 @@ class KakaocertService < BarocertService
344
344
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
345
345
  end
346
346
  if cms.nil?
347
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
347
+ raise BarocertException.new('-99999999', '출금동의 요청정보가 입력되지 않았습니다.')
348
348
  end
349
349
  if cms["receiverHP"].to_s == ''
350
350
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -0,0 +1,351 @@
1
+ # -*- coding: utf-8 -*-
2
+ require_relative '../barocert.rb'
3
+ require 'openssl'
4
+ require 'base64'
5
+
6
+ # navercert API BaseService class
7
+ class NavercertService < BarocertService
8
+ # Generate Linkhub Class Singleton Instance
9
+ class << self
10
+ def instance(linkID, secretKey)
11
+ super(linkID, secretKey)
12
+ @instance ||= new
13
+ @instance.addScope("421")
14
+ @instance.addScope("422")
15
+ @instance.addScope("423")
16
+ return @instance
17
+ end
18
+ private :new
19
+ end
20
+
21
+ def _encrypt(plaintext)
22
+ return aes256gcm(plaintext, @linkhub._secretKey)
23
+ end
24
+
25
+ def aes256gcm(plaintext, key)
26
+ iv = OpenSSL::Random.random_bytes(12)
27
+ cipher = OpenSSL::Cipher.new('aes-256-gcm')
28
+ cipher.encrypt
29
+ cipher.key = Base64.decode64(key)
30
+ cipher.iv = iv
31
+ ciphertext = cipher.update(plaintext) + cipher.final
32
+ return Base64.strict_encode64(iv + ciphertext + cipher.auth_tag)
33
+ end
34
+
35
+ def isNumber(str)
36
+ return str.is_i?
37
+ end
38
+
39
+ def isNullorEmptyTokenType(tokens)
40
+ if tokens.nil?
41
+ return true
42
+ end
43
+ tokens.each{ |token|
44
+ if token.nil?
45
+ return true
46
+ end
47
+ if token["tokenType"].to_s == ''
48
+ return true
49
+ end
50
+ }
51
+ false
52
+ end
53
+
54
+ def isNullorEmptyToken(tokens)
55
+ if tokens.nil?
56
+ return true
57
+ end
58
+ tokens.each{ |token|
59
+ if token.nil?
60
+ return true
61
+ end
62
+ if token["token"].to_s == ''
63
+ return true
64
+ end
65
+ }
66
+ false
67
+ end
68
+
69
+ def requestIdentity(clientCode, identity)
70
+
71
+ if clientCode.to_s == ''
72
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
73
+ end
74
+ if clientCode.is_i? == false
75
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
76
+ end
77
+ if clientCode.length != 12
78
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
79
+ end
80
+ if identity.nil?
81
+ raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
82
+ end
83
+ if identity["receiverHP"].to_s == ''
84
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
85
+ end
86
+ if identity["receiverName"].to_s == ''
87
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
88
+ end
89
+ if identity["receiverBirthday"].to_s == ''
90
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
91
+ end
92
+
93
+ if identity["reqTitle"].to_s == ''
94
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
95
+ end
96
+
97
+ if identity["callCenterNum"].to_s == ''
98
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
99
+ end
100
+
101
+ if identity["expireIn"].to_s == ''
102
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
103
+ end
104
+
105
+ httppost("/NAVER/Identity/#{clientCode}", identity.to_json)
106
+ end
107
+
108
+ def getIdentityStatus(clientCode, receiptID)
109
+ puts receiptID
110
+ if clientCode.to_s == ''
111
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
112
+ end
113
+ if clientCode.is_i? == false
114
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
115
+ end
116
+ if clientCode.length != 12
117
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
118
+ end
119
+ if receiptID.to_s == ''
120
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
121
+ end
122
+ if receiptID.is_i? == false
123
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
124
+ end
125
+ if receiptID.length != 32
126
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
127
+ end
128
+
129
+ httpget("/NAVER/Identity/#{clientCode}/#{receiptID}")
130
+ end
131
+
132
+ def verifyIdentity(clientCode, receiptID)
133
+ if clientCode.to_s == ''
134
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
135
+ end
136
+ if clientCode.is_i? == false
137
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
138
+ end
139
+ if clientCode.length != 12
140
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
141
+ end
142
+ if receiptID.to_s == ''
143
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
144
+ end
145
+ if receiptID.is_i? == false
146
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
147
+ end
148
+ if receiptID.length != 32
149
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
150
+ end
151
+
152
+ httppost("/NAVER/Identity/#{clientCode}/#{receiptID}")
153
+ end
154
+
155
+ def requestSign(clientCode, sign)
156
+ if clientCode.to_s == ''
157
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
158
+ end
159
+ if clientCode.is_i? == false
160
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
161
+ end
162
+ if clientCode.length != 12
163
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
164
+ end
165
+ if sign.nil?
166
+ raise BarocertException.new('-99999999', '전자서명 서명요청 정보가 입력되지 않았습니다.')
167
+ end
168
+ if sign["receiverHP"].to_s == ''
169
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
170
+ end
171
+ if sign["receiverName"].to_s == ''
172
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
173
+ end
174
+ if sign["receiverBirthday"].to_s == ''
175
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
176
+ end
177
+
178
+ if sign["reqTitle"].to_s == ''
179
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
180
+ end
181
+
182
+ if sign["reqMessage"].to_s == ''
183
+ raise BarocertException.new('-99999999', '인증요청 메시지가 입력되지 않았습니다.')
184
+ end
185
+
186
+ if sign["callCenterNum"].to_s == ''
187
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
188
+ end
189
+
190
+ if sign["expireIn"].to_s == ''
191
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
192
+ end
193
+
194
+ if sign["token"].to_s == ''
195
+ raise BarocertException.new('-99999999', '토큰 원문이 입력되지 않았습니다.')
196
+ end
197
+
198
+ if sign["tokenType"].to_s == ''
199
+ raise BarocertException.new('-99999999', '원문 유형이 입력되지 않았습니다.')
200
+ end
201
+ httppost("/NAVER/Sign/#{clientCode}", sign.to_json)
202
+ end
203
+
204
+ def getSignStatus(clientCode, receiptID)
205
+ if clientCode.to_s == ''
206
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
207
+ end
208
+ if clientCode.is_i? == false
209
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
210
+ end
211
+ if clientCode.length != 12
212
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
213
+ end
214
+ if receiptID.to_s == ''
215
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
216
+ end
217
+ if receiptID.is_i? == false
218
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
219
+ end
220
+ if receiptID.length != 32
221
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
222
+ end
223
+
224
+ httpget("/NAVER/Sign/#{clientCode}/#{receiptID}")
225
+ end
226
+
227
+ def verifySign(clientCode, receiptID)
228
+ if clientCode.to_s == ''
229
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
230
+ end
231
+ if clientCode.is_i? == false
232
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
233
+ end
234
+ if clientCode.length != 12
235
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
236
+ end
237
+ if receiptID.to_s == ''
238
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
239
+ end
240
+ if receiptID.is_i? == false
241
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
242
+ end
243
+ if receiptID.length != 32
244
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
245
+ end
246
+
247
+ httppost("/NAVER/Sign/#{clientCode}/#{receiptID}")
248
+ end
249
+
250
+ def requestMultiSign(clientCode, multiSign)
251
+ if clientCode.to_s == ''
252
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
253
+ end
254
+ if clientCode.is_i? == false
255
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
256
+ end
257
+ if clientCode.length != 12
258
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
259
+ end
260
+ if multiSign.nil?
261
+ raise BarocertException.new('-99999999', '전자서명 요청정보가 입력되지 않았습니다.')
262
+ end
263
+ if multiSign["receiverHP"].to_s == ''
264
+ raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
265
+ end
266
+ if multiSign["receiverName"].to_s == ''
267
+ raise BarocertException.new('-99999999', '수신자 성명이 입력되지 않았습니다.')
268
+ end
269
+ if multiSign["receiverBirthday"].to_s == ''
270
+ raise BarocertException.new('-99999999', '생년월일이 입력되지 않았습니다.')
271
+ end
272
+
273
+ if multiSign["reqTitle"].to_s == ''
274
+ raise BarocertException.new('-99999999', '인증요청 메시지 제목이 입력되지 않았습니다.')
275
+ end
276
+
277
+ if multiSign["reqMessage"].to_s == ''
278
+ raise BarocertException.new('-99999999', '인증요청 메시지가 입력되지 않았습니다.')
279
+ end
280
+
281
+ if multiSign["callCenterNum"].to_s == ''
282
+ raise BarocertException.new('-99999999', '고객센터 연락처가 입력되지 않았습니다.')
283
+ end
284
+
285
+ if multiSign["expireIn"].to_s == ''
286
+ raise BarocertException.new('-99999999', '만료시간이 입력되지 않았습니다.')
287
+ end
288
+
289
+ if isNullorEmptyToken(multiSign["tokens"])
290
+ raise BarocertException.new('-99999999', '토큰 원문이 입력되지 않았습니다.')
291
+ end
292
+
293
+ if isNullorEmptyTokenType(multiSign["tokens"])
294
+ raise BarocertException.new('-99999999', '원문 유형이 입력되지 않았습니다.')
295
+ end
296
+
297
+ httppost("/NAVER/MultiSign/#{clientCode}", multiSign.to_json)
298
+ end
299
+
300
+ def getMultiSignStatus(clientCode, receiptID)
301
+ if clientCode.to_s == ''
302
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
303
+ end
304
+ if clientCode.is_i? == false
305
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
306
+ end
307
+ if clientCode.length != 12
308
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
309
+ end
310
+ if receiptID.to_s == ''
311
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
312
+ end
313
+ if receiptID.is_i? == false
314
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
315
+ end
316
+ if receiptID.length != 32
317
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
318
+ end
319
+
320
+ httpget("/NAVER/MultiSign/#{clientCode}/#{receiptID}")
321
+ end
322
+
323
+ def verifyMultiSign(clientCode, receiptID)
324
+ if clientCode.to_s == ''
325
+ raise BarocertException.new('-99999999', '이용기관코드가 입력되지 않았습니다.')
326
+ end
327
+ if clientCode.is_i? == false
328
+ raise BarocertException.new('-99999999', '이용기관코드는 숫자만 입력할 수 있습니다.')
329
+ end
330
+ if clientCode.length != 12
331
+ raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
332
+ end
333
+ if receiptID.to_s == ''
334
+ raise BarocertException.new('-99999999', '접수아이디가 입력되지 않았습니다.')
335
+ end
336
+ if receiptID.is_i? == false
337
+ raise BarocertException.new('-99999999', '접수아이디는 숫자만 입력할 수 있습니다.')
338
+ end
339
+ if receiptID.length != 32
340
+ raise BarocertException.new('-99999999', '접수아이디는 32자 입니다.')
341
+ end
342
+
343
+ httppost("/NAVER/MultiSign/#{clientCode}/#{receiptID}")
344
+ end
345
+ end
346
+
347
+ class String
348
+ def is_i?
349
+ !!(self =~ /^\d+$/)
350
+ end
351
+ end
@@ -79,7 +79,7 @@ class PasscertService < BarocertService
79
79
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
80
80
  end
81
81
  if identity.nil?
82
- raise BarocertException.new('-99999999', '본인인증 서명요청 정보가 입력되지 않았습니다.')
82
+ raise BarocertException.new('-99999999', '본인인증 요청정보가 입력되지 않았습니다.')
83
83
  end
84
84
  if identity["receiverHP"].to_s == ''
85
85
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -262,7 +262,7 @@ class PasscertService < BarocertService
262
262
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
263
263
  end
264
264
  if cms.nil?
265
- raise BarocertException.new('-99999999', '출금동의 서명요청 정보가 입력되지 않았습니다.')
265
+ raise BarocertException.new('-99999999', '출금동의 요청정보가 입력되지 않았습니다.')
266
266
  end
267
267
  if cms["receiverHP"].to_s == ''
268
268
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
@@ -361,7 +361,7 @@ class PasscertService < BarocertService
361
361
  raise BarocertException.new('-99999999', '이용기관코드는 12자 입니다.')
362
362
  end
363
363
  if login.nil?
364
- raise BarocertException.new('-99999999', '간편로그인 서명요청 정보가 입력되지 않았습니다.s')
364
+ raise BarocertException.new('-99999999', '간편로그인 요청정보가 입력되지 않았습니다.s')
365
365
  end
366
366
  if login["receiverHP"].to_s == ''
367
367
  raise BarocertException.new('-99999999', '수신자 휴대폰번호가 입력되지 않았습니다.')
data/lib/barocert.rb CHANGED
@@ -13,7 +13,7 @@ class BarocertService
13
13
  APIVersion = "2.1"
14
14
  BOUNDARY = "==BAROCERT_RUBY_SDK=="
15
15
 
16
- attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useLocalTimeYN, :__ServiceURL
16
+ attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useLocalTimeYN
17
17
 
18
18
  # Generate Linkhub Class Singleton Instance
19
19
  class << self
@@ -25,7 +25,6 @@ class BarocertService
25
25
  @instance.ipRestrictOnOff = false
26
26
  @instance.useStaticIP = false
27
27
  @instance.useLocalTimeYN = true
28
- @instance.__ServiceURL = ""
29
28
  return @instance
30
29
  end
31
30
 
@@ -50,18 +49,22 @@ class BarocertService
50
49
  end
51
50
 
52
51
  def setServiceURL(value)
53
- @__ServiceURL = value
52
+ @_ServiceURL = value
54
53
  end
55
54
 
55
+ def setAuthURL(value)
56
+ @linkhub.setServiceURL(value)
57
+ end
58
+
56
59
  def getServiceURL()
57
- if @__ServiceURL.nil? || @__ServiceURL == ""
60
+ if @_ServiceURL.nil? || @_ServiceURL == ""
58
61
  if @useStaticIP
59
62
  return ServiceURL_Static
60
63
  else
61
64
  return ServiceURL
62
65
  end
63
66
  else
64
- return @__ServiceURL
67
+ return @_ServiceURL
65
68
  end
66
69
  end
67
70
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barocert
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linkhub Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-16 00:00:00.000000000 Z
11
+ date: 2023-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkhub
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.5.0
19
+ version: 1.6.0
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.5.0
26
+ version: 1.6.0
27
27
  description: barocert API SDK
28
28
  email: code@linkhub.co.kr
29
29
  executables: []
@@ -32,6 +32,7 @@ extra_rdoc_files: []
32
32
  files:
33
33
  - lib/barocert.rb
34
34
  - lib/barocert/kakaocert.rb
35
+ - lib/barocert/navercert.rb
35
36
  - lib/barocert/passcert.rb
36
37
  homepage: https://github.com/barocert/barocert.ruby
37
38
  licenses: