Skip to content
This repository was archived by the owner on Mar 4, 2024. It is now read-only.

Commit bbb382b

Browse files
committed
JavaScript version 0_1_16
------- * Update device fingerprinting to align with Adyen Hosted Payment Pages fingerprinting update * Do not validate CVC if it is not provided * Add validation for holderName
1 parent 5b905f5 commit bbb382b

10 files changed

+66
-35
lines changed

README.md

+9
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,15 @@ In case the HTML integration is troublesome in your setup, the library has been
129129

130130
# Version History
131131

132+
JavaScript version 0_1_16
133+
-------
134+
135+
* Update device fingerprinting to align with Adyen Hosted Payment Pages fingerprinting update
136+
137+
* Do not validate CVC if it is not provided
138+
139+
* Add validation for holderName
140+
132141
JavaScript version 0_1_15
133142
-------
134143

adyen.encrypt.nodom.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<!-- How to use the Adyen encryption client-side JS library -->
1717
<!-- N.B. Make sure the library is *NOT* loaded in the "head" of the HTML document -->
1818

19-
<script type="text/javascript" src="js/adyen.encrypt.nodom.min.js?0_1_15"></script>
19+
<script type="text/javascript" src="js/adyen.encrypt.nodom.min.js?0_1_16"></script>
2020
<script type="text/javascript">
2121

2222
// the public key

adyen.encrypt.simple.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949

5050
<!-- How to use the Adyen encryption client-side JS library -->
5151
<!-- N.B. Make sure the library is *NOT* loaded in the "head" of the HTML document -->
52-
<script type="text/javascript" src="js/adyen.encrypt.min.js?0_1_15"></script>
52+
<script type="text/javascript" src="js/adyen.encrypt.min.js?0_1_16"></script>
5353

5454
<script type="text/javascript">
5555

js/addOns/adyen.cardtype.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
};
134134

135135
adyen.CardTypeDetection = {
136-
version : '0_1_15',
136+
version : '0_1_16',
137137
getHandler : function ( cardTypeElement ) {
138138
return function ( ev ) {
139139

js/addOns/adyen.cardtype.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/adyen.encrypt.js

+24-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/adyen.encrypt.min.js

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/adyen.encrypt.nodom.js

+21-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* * Stanford Javascript Crypto Library | http://crypto.stanford.edu/sjcl/
88
* * JSON in JavaScript | http://www.JSON.org/
99
*
10-
* Version: 0_1_15
10+
* Version: 0_1_16
1111
* Author: ADYEN (c) 2014
1212
1313
<!DOCTYPE html>
@@ -28,7 +28,7 @@
2828
<!-- How to use the Adyen encryption client-side JS library -->
2929
<!-- N.B. Make sure the library is *NOT* loaded in the "head" of the HTML document -->
3030
31-
<script type="text/javascript" src="js/adyen.encrypt.nodom.min.js?0_1_15"></script>
31+
<script type="text/javascript" src="js/adyen.encrypt.nodom.min.js?0_1_16"></script>
3232
<script type="text/javascript">
3333
3434
// the public key
@@ -149,7 +149,7 @@
149149
(function(a){var b=a.codec.bytes=a.codec.bytes||{};b.fromBits=b.fromBits||function(c){var d=[],g=a.bitArray.bitLength(c),f,e;for(f=0;f<g/8;f++){if((f&3)===0){e=c[f/4]}d.push(e>>>24);e<<=8}return d};b.toBits=b.toBits||function(c){var d=[],f,e=0;for(f=0;f<c.length;f++){e=e<<8|c[f];if((f&3)===3){d.push(e);e=0}}if(f&3){d.push(a.bitArray.partial(8*(f&3),e))}return d}}(sjcl));
150150

151151
/* adyen.eventlog.js */
152-
var evLog;(function(){var a=new Date().getTime();function b(d,e,f,c){if(typeof d.addEventListener==="function"){d.addEventListener(e,f,c)}else{if(d.attachEvent){d.attachEvent("on"+e,f)}else{throw new Error(encrypt.errors.UNABLETOBIND+": Unable to bind "+e+"-event")}}}evLog=evLog||(function(){var c={};return function(h,g,d){if(h==="bind"){evLog(d+"Bind");b(g,"change",function(){evLog(d+"FieldChangeCount");evLog("log",d,"ch")},true);b(g,"click",function(){evLog(d+"FieldClickCount");evLog("log",d,"cl")},true);b(g,"focus",function(){evLog(d+"FieldFocusCount");evLog("log",d,"fo")},true);b(g,"blur",function(){evLog(d+"FieldBlurCount");evLog("log",d,"bl")},true);b(g,"keyup",function(i){if(i.keyCode==16){evLog("log",d,"Su")}else{if(i.keyCode==17){evLog("log",d,"Cu")}else{if(i.keyCode==18){evLog("log",d,"Au")}}}});b(g,"keydown",function(i){evLog(d+"FieldKeyCount");switch(i&&i.keyCode){case 8:evLog("log",d,"Kb");break;case 16:evLog("log",d,"Sd");break;case 17:evLog("log",d,"Cd");break;case 18:evLog("log",d,"Ad");break;case 37:evLog("log",d,"Kl");break;case 39:evLog("log",d,"Kr");break;case 46:evLog("log",d,"Kd");break;case 32:evLog("log",d,"Ks");break;default:if(i.keyCode>=48&&i.keyCode<=57||i.keyCode>=96&&i.keyCode<=105){evLog("log",d,"KN")}else{if(i.keyCode>=65&&i.keyCode<=90){evLog("log",d,"KL")}}break}},true);return}if(h==="set"){c[g]=d;return}if(h==="log"){var j=g+"FieldLog";var e=(new Date().getTime())-a;e=Math.round(e/100);if(!c.hasOwnProperty(j)){c[j]=d+"@"+e}else{c[j]+=","+d+"@"+e}if(c[j].length>1500){c[j]=c[j].substring(c[j].length-1500);c[j]=c[j].substring(c[j].indexOf(",")+1)}return}if(h==="extend"){for(var f in c){if(f==="number"||f==="expiryMonth"||f==="expiryYear"||f==="generationtime"||f==="holderName"||f==="cvc"){continue}if(c.hasOwnProperty(f)){g[f]=""+c[f]}}return}if(!c.hasOwnProperty(h)){c[h]=1}else{c[h]++}}})();if(window&&(window.attachEvent||window.addEventListener)){b(window,"focus",function(){evLog("activate")});b(window,"blur",function(){evLog("deactivate")})}}());
152+
var evLog;(function(){var a=new Date().getTime();function c(e,f,g,d){if(typeof e.addEventListener==="function"){e.addEventListener(f,g,d)}else{if(e.attachEvent){e.attachEvent("on"+f,g)}else{throw new Error(encrypt.errors.UNABLETOBIND+": Unable to bind "+f+"-event")}}}evLog=evLog||(function(){var d={};return function(j,h,e){if(j==="bind"){evLog(e+"Bind");c(h,"change",function(i){evLog(e+"FieldChangeCount");evLog("log",e,"ch");try{evLog("set",e+"FieldEvHa",b(h))}catch(l){evLog("set",e+"FieldEvHa","Err")}},true);c(h,"click",function(){evLog(e+"FieldClickCount");evLog("log",e,"cl")},true);c(h,"focus",function(){evLog(e+"FieldFocusCount");evLog("log",e,"fo")},true);c(h,"blur",function(){evLog(e+"FieldBlurCount");evLog("log",e,"bl")},true);c(h,"touchstart",function(){evLog(e+"FieldTouchStartCount");evLog("log",e,"Ts")},true);c(h,"touchend",function(){evLog(e+"FieldTouchEndCount");evLog("log",e,"Te")},true);c(h,"touchcancel",function(){evLog(e+"FieldTouchCancelCount");evLog("log",e,"Tc")},true);c(h,"keyup",function(i){if(i.keyCode==16){evLog("log",e,"Su")}else{if(i.keyCode==17){evLog("log",e,"Cu")}else{if(i.keyCode==18){evLog("log",e,"Au")}}}});c(h,"keydown",function(i){evLog(e+"FieldKeyCount");switch(i&&i.keyCode){case 8:evLog("log",e,"Kb");break;case 16:evLog("log",e,"Sd");break;case 17:evLog("log",e,"Cd");break;case 18:evLog("log",e,"Ad");break;case 37:evLog("log",e,"Kl");break;case 39:evLog("log",e,"Kr");break;case 46:evLog("log",e,"Kd");break;case 32:evLog("log",e,"Ks");break;default:if(i.keyCode>=48&&i.keyCode<=57||i.keyCode>=96&&i.keyCode<=105){evLog("log",e,"KN")}else{if(i.keyCode>=65&&i.keyCode<=90){evLog("log",e,"KL")}else{evLog("log",e,"KU");evLog("log",e+"UnkKeys",i.keyCode)}}break}},true);return}if(j==="set"){d[h]=e;return}if(j==="log"){var k=h+"FieldLog";var f=(new Date().getTime())-a;f=Math.round(f/100);if(!d.hasOwnProperty(k)){d[k]=e+"@"+f}else{d[k]+=","+e+"@"+f}if(d[k].length>1500){d[k]=d[k].substring(d[k].length-1500);d[k]=d[k].substring(d[k].indexOf(",")+1)}return}if(j==="extend"){for(var g in d){if(g==="number"||g==="expiryMonth"||g==="expiryYear"||g==="generationtime"||g==="holderName"||g==="cvc"){continue}if(d.hasOwnProperty(g)){h[g]=""+d[g]}}return}if(!d.hasOwnProperty(j)){d[j]=1}else{d[j]++}}})();function b(j){var p=function(){return{}};if(window.jQuery&&typeof window.jQuery._data=="function"){p=function(o){return window.jQuery._data(o,"events")}}var n=j,d=0,q=[],u=["onmousedown","onmouseup","onmouseover","onmouseout","onclick","onmousemove","ondblclick","onerror","onresize","onscroll","onkeydown","onkeyup","onkeypress","onchange","onsubmit"],k="Own",s="Par",t=u.length;var i=0;while(n&&n!==n.documentElement){i++;var m=t,g,l,h=(n.nodeName||n.tagName||"").toUpperCase().substring(0,3);while(m--){g=u[m];if(n[name]){g=g+((n===j)?k:s)+h;d++;q[g]=q[g]||0;q[g]++}}var r=p(n);if(typeof r==="object"){for(var g in r){if(r.hasOwnProperty(g)){l=r[g].length;g=g+((n===j)?k:s)+h;q[g]=q[g]||0;q[g]+=l;d+=l}}}if(!n.parentNode){break}n=n.parentNode}var e=["total="+d];for(var f in q){if(q.hasOwnProperty(f)&&q[f]>0){e.push(f+"="+q[f])}}return e.join("&")}if(window&&(window.attachEvent||window.addEventListener)){c(window,"focus",function(){evLog("activate")});c(window,"blur",function(){evLog("deactivate")})}}());
153153

154154
/* adyen */
155155
var adyen = root.adyen = root.adyen || {};
@@ -172,7 +172,7 @@
172172
encrypt.errors = encrypt.errors || {};
173173

174174

175-
encrypt.version = '0_1_15';
175+
encrypt.version = '0_1_16';
176176

177177

178178

@@ -353,12 +353,23 @@
353353

354354
Encryption.prototype.encrypt = function ( data ) {
355355

356-
var rsa, aes, cipher, keybytes, encrypted, prefix, validationObject = {
357-
number : data.number || '',
358-
cvc : data.cvc || '',
359-
month: data.expiryMonth || '',
360-
year : data.expiryYear || ''
361-
};
356+
var rsa, aes, cipher, keybytes, encrypted, prefix, validationObject = {};
357+
358+
if (typeof data.number !== "undefined") {
359+
validationObject.number = data.number;
360+
}
361+
if (typeof data.cvc !== "undefined") {
362+
validationObject.cvc = data.cvc;
363+
}
364+
if (typeof data.expiryMonth !== "undefined") {
365+
validationObject.month = data.expiryMonth;
366+
}
367+
if (typeof data.expiryMonth !== "undefined") {
368+
validationObject.year = data.expiryYear;
369+
}
370+
if (typeof data.holderName !== "undefined") {
371+
validationObject.holderName = data.holderName;
372+
}
362373

363374
if ( this.options.enableValidations !== false && this.validate(validationObject).valid === false) {
364375

js/adyen.encrypt.nodom.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "adyen-cse-js",
3-
"version": "0.1.15",
3+
"version": "0.1.16",
44
"description": "Adyen javascript client-side encryption library",
55
"main": "js/adyen.encrypt.nodom.js",
66
"repository": {

0 commit comments

Comments
 (0)