From 965f6f8d5e0501dae395bea6d4f58bf28ca4337d Mon Sep 17 00:00:00 2001 From: "Goel, Aastvik" Date: Thu, 4 Dec 2025 00:37:30 +0530 Subject: [PATCH] MLE for Response Sample Code and Related files --- Data/ConfigurationWithMLE.js | 143 ++++++++++++++-- Resource/agentic_mid_091225001.p12 | Bin 0 -> 5008 bytes Resource/agentic_mid_091225001_mle.p12 | Bin 0 -> 5008 bytes ...gentic_mid_091225001_new_generated_mle.p12 | Bin 0 -> 4807 bytes ...91225001_new_generated_mle_private_key.key | 28 +++ ...091225001_new_generated_mle_private_key.p8 | 28 +++ ...91225001_new_generated_mle_private_key.pem | 32 ++++ ...ew_generated_mle_private_key_encrypted.key | 34 ++++ ...new_generated_mle_private_key_encrypted.p8 | 30 ++++ ...ew_generated_mle_private_key_encrypted.pem | 34 ++++ Samples/MLEFeature/acp-api-example.js | 159 ++++++++++++++++++ 11 files changed, 477 insertions(+), 11 deletions(-) create mode 100644 Resource/agentic_mid_091225001.p12 create mode 100644 Resource/agentic_mid_091225001_mle.p12 create mode 100644 Resource/agentic_mid_091225001_new_generated_mle.p12 create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key.key create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key.p8 create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key.pem create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.key create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.p8 create mode 100644 Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.pem create mode 100644 Samples/MLEFeature/acp-api-example.js diff --git a/Data/ConfigurationWithMLE.js b/Data/ConfigurationWithMLE.js index 2e262f8..0a08d85 100644 --- a/Data/ConfigurationWithMLE.js +++ b/Data/ConfigurationWithMLE.js @@ -64,8 +64,18 @@ function MLEConfiguration1() { 'loggingLevel': 'debug', 'enableMasking': EnableMasking }, - 'useMLEGlobally': true, //globally MLE will be enabled for all the MLE supported APIs by Cybs in SDK - 'mleKeyAlias':"CyberSource_SJC_US" //this is optional paramter, not required to set the parameter if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". + + //Set Request MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableRequestMLEForOptionalApisGlobally': true, //Enables request MLE globally for all APIs that have optional MLE support //same as older deprecated variable "useMLEGlobally" //APIs that has MLE Request mandatory is default has MLE support in SDK without any configuration but support with JWT auth type. + 'requestMleKeyAlias':"CyberSource_SJC_US", //this is optional parameter, not required to set the parameter if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". //same as older deprecated variable "mleKeyAlias" + + //Set Response MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableResponseMleGlobally': false, //Enables/Disable response MLE globally for all APIs that support MLE responses + 'responseMlePrivateKeyFilePath': "", //Path to the Response MLE private key file. Supported formats: .p12, .pfx, .pem, .key, .p8. Recommendation use encrypted private Key (password protection) for MLE response. + 'responseMlePrivateKeyFilePassword': "", //Password for the private key file (required for .p12/.pfx files or encrypted private keys). + 'responseMleKID': "" //This parameter is optional when responseMlePrivateKeyFilePath points to a CyberSource-generated P12 file. If not provided, the SDK will automatically fetch the Key ID from the P12 file. If provided, the SDK will use the user-provided value instead of the auto-fetched value. + //Required when using PEM format files (.pem, .key, .p8) or when providing responseMlePrivateKey object directly. + }; return configObj; @@ -99,12 +109,23 @@ function MLEConfiguration2() { 'loggingLevel': 'debug', 'enableMasking': EnableMasking }, - 'useMLEGlobally': true, //globally MLE will be enabled for all the MLE supported APIs by Cybs in SDK + + //Set Request MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] 'mapToControlMLEonAPI':{ - "createPayment":false, //only createPayment function will have MLE=false i.e. (/pts/v2/payments POST API) out of all MLE supported APIs - "capturePayment":true //capturePayment function will have MLE=true i.e. (/pts/v2/payments/{id}/captures POST API), if it not in list of MLE supportedAPIs else it will already have MLE=true by global MLE parameter. + "createPayment":"false", //only createPayment function will have MLE=false i.e. (/pts/v2/payments POST API) out of all MLE supported APIs + "capturePayment":"true" //capturePayment function will have MLE=true i.e. (/pts/v2/payments/{id}/captures POST API), if it not in list of MLE supportedAPIs else it will already have MLE=true by global MLE parameter. }, - 'mleKeyAlias':"CyberSource_SJC_US" //this is optional paramter, not required to set the parameter/value if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". + + 'enableRequestMLEForOptionalApisGlobally': true, //Enables request MLE globally for all APIs that have optional MLE support //same as older deprecated variable "useMLEGlobally" + 'requestMleKeyAlias':"CyberSource_SJC_US", //this is optional parameter, not required to set the parameter if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". //same as older deprecated variable "mleKeyAlias" + + //Set Response MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableResponseMleGlobally': false, //Enables/Disable response MLE globally for all APIs that support MLE responses + 'responseMlePrivateKeyFilePath': "", //Path to the Response MLE private key file. Supported formats: .p12, .pfx, .pem, .key, .p8. Recommendation use encrypted private Key (password protection) for MLE response. + 'responseMlePrivateKeyFilePassword': "", //Password for the private key file (required for .p12/.pfx files or encrypted private keys). + 'responseMleKID': "" //This parameter is optional when responseMlePrivateKeyFilePath points to a CyberSource-generated P12 file. If not provided, the SDK will automatically fetch the Key ID from the P12 file. If provided, the SDK will use the user-provided value instead of the auto-fetched value. + //Required when using PEM format files (.pem, .key, .p8) or when providing responseMlePrivateKey object directly. + }; return configObj; @@ -138,12 +159,110 @@ function MLEConfiguration3() { 'loggingLevel': 'debug', 'enableMasking': EnableMasking }, - 'useMLEGlobally': false, //globally MLE will be disabled for all the APIs in SDK + + //Set Request MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] 'mapToControlMLEonAPI':{ - "createPayment":true, //only createPayment function will have MLE=true i.e. (/pts/v2/payments POST API) - "capturePayment":true //only capturePayment function will have MLE=true i.e. (/pts/v2/payments/{id}/captures POST API) + "createPayment":"true", //only createPayment function will have MLE=true i.e. (/pts/v2/payments POST API) + "capturePayment":"true" //only capturePayment function will have MLE=true i.e. (/pts/v2/payments/{id}/captures POST API) + }, + + 'enableRequestMLEForOptionalApisGlobally': false, //Disabled request MLE globally for all APIs that have optional MLE support //same as older deprecated variable "useMLEGlobally" + 'requestMleKeyAlias':"CyberSource_SJC_US", //this is optional parameter, not required to set the parameter if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". //same as older deprecated variable "mleKeyAlias" + + //Set Response MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableResponseMleGlobally': false, //Enables/Disable response MLE globally for all APIs that support MLE responses + 'responseMlePrivateKeyFilePath': "", //Path to the Response MLE private key file. Supported formats: .p12, .pfx, .pem, .key, .p8. Recommendation use encrypted private Key (password protection) for MLE response. + 'responseMlePrivateKeyFilePassword': "", //Password for the private key file (required for .p12/.pfx files or encrypted private keys). + 'responseMleKID': "" //This parameter is optional when responseMlePrivateKeyFilePath points to a CyberSource-generated P12 file. If not provided, the SDK will automatically fetch the Key ID from the P12 file. If provided, the SDK will use the user-provided value instead of the auto-fetched value. + //Required when using PEM format files (.pem, .key, .p8) or when providing responseMlePrivateKey object directly. + + }; + return configObj; + +} + +// Constructor for MLEConfigurationWithRequestAndResponseMLE1 +function MLEConfigurationWithRequestAndResponseMLE1() { + + var configObj = { + 'authenticationType': AuthenticationType, + 'runEnvironment': RunEnvironment, + + 'merchantID': 'agentic_mid_091225001', + + 'keyAlias': 'agentic_mid_091225001', + 'keyPass': 'Changeit@123', + 'keyFileName': 'agentic_mid_091225001', + 'keysDirectory': KeysDirectory, + + 'logConfiguration': { + 'enableLog': EnableLog, + 'logFileName': LogFileName, + 'logDirectory': LogDirectory, + 'logFileMaxSize': LogfileMaxSize, + 'loggingLevel': 'debug', + 'enableMasking': EnableMasking }, - 'mleKeyAlias':"CyberSource_SJC_US" //this is optional paramter, not required to set the parameter if custom value is not required for MLE key alias. Default value is "CyberSource_SJC_US". + + //Set Request MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + // 'enableRequestMLEForOptionalApisGlobally': true, //Enables request MLE globally for all APIs that have optional MLE support //same as older deprecated variable "useMLEGlobally" //APIs that has MLE Request mandatory is default has MLE support in SDK without any configuration but support with JWT auth type. + 'useMLEGlobally': false, //deprecated variable, use 'enableRequestMLEForOptionalApisGlobally' instead + + //Set Response MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableResponseMleGlobally': true, //Enables response MLE globally for all APIs that support MLE responses + 'responseMlePrivateKeyFilePath': "Resource/agentic_mid_091225001_mle.p12", //Path to the Response MLE private key file. Supported formats: .p12, .pfx, .pem, .key, .p8. Recommendation use encrypted private Key (password protection) for MLE response. + 'responseMlePrivateKeyFilePassword': "Changeit@123", //Password for the private key file (required for .p12/.pfx files or encrypted private keys). + 'responseMleKID': "1757970970891045729358" //Optional since p12 is Cybs Generated. + //This parameter is optional when responseMlePrivateKeyFilePath points to a CyberSource-generated P12 file. If not provided, the SDK will automatically fetch the Key ID from the P12 file. If provided, the SDK will use the user-provided value instead of the auto-fetched value. + //Required when using PEM format files (.pem, .key, .p8) or when providing responseMlePrivateKey object directly. + + }; + return configObj; + +} + +// Constructor for MLEConfigurationWithRequestAndResponseMLE2 +function MLEConfigurationWithRequestAndResponseMLE2() { + + var configObj = { + 'authenticationType': AuthenticationType, + 'runEnvironment': RunEnvironment, + + 'merchantID': 'agentic_mid_091225001', + + 'keyAlias': 'agentic_mid_091225001', + 'keyPass': 'Changeit@123', + 'keyFileName': 'agentic_mid_091225001', + 'keysDirectory': KeysDirectory, + + 'logConfiguration': { + 'enableLog': EnableLog, + 'logFileName': LogFileName, + 'logDirectory': LogDirectory, + 'logFileMaxSize': LogfileMaxSize, + 'loggingLevel': 'debug', + 'enableMasking': EnableMasking + }, + + //Set Request MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableRequestMLEForOptionalApisGlobally': false, //Disable request MLE globally for all APIs that have optional MLE support //same as older deprecated variable "useMLEGlobally" //APIs that has MLE Request mandatory is default has MLE support in SDK without any configuration but support with JWT auth type. + + //Set Response MLE Settings in Merchant Configuration [Refer MLE.md on cybersource-rest-client-node github repo] + 'enableResponseMleGlobally': false, //Disable response MLE globally for all APIs that support MLE responses + + //Set Request & Response MLE Settings in Merchant Configuration through MAP for API control level [Refer MLE.md on cybersource-rest-client-node github repo] + 'mapToControlMLEonAPI':{ + "createPayment":"true::false", //only createPayment function will have Request MLE=true and Response MLE = false i.e. (/pts/v2/payments POST API) + "enrollCard":"true::true" //only enrollCard function will have Request MLE=true & Response MLE =true i.e. (/acp/v1/tokens POST API) + }, + + //since one of the API has Response MLE true, so below fields are required for Response MLE + 'responseMlePrivateKeyFilePath': "Resource/agentic_mid_091225001_new_generated_mle.p12", //Path to the Response MLE private key file. Supported formats: .p12, .pfx, .pem, .key, .p8. Recommendation use encrypted private Key (password protection) for MLE response. + 'responseMlePrivateKeyFilePassword': "Changeit@123", //Password for the private key file (required for .p12/.pfx files or encrypted private keys). + 'responseMleKID': "1764104507829324018353" //Optional since p12 is Cybs Generated. + //This parameter is optional when responseMlePrivateKeyFilePath points to a CyberSource-generated P12 file. If not provided, the SDK will automatically fetch the Key ID from the P12 file. If provided, the SDK will use the user-provided value instead of the auto-fetched value. + //Required when using PEM format files (.pem, .key, .p8) or when providing responseMlePrivateKey object directly. + }; return configObj; @@ -152,5 +271,7 @@ function MLEConfiguration3() { module.exports = { MLEConfiguration1, MLEConfiguration2, - MLEConfiguration3 + MLEConfiguration3, + MLEConfigurationWithRequestAndResponseMLE1, + MLEConfigurationWithRequestAndResponseMLE2 }; diff --git a/Resource/agentic_mid_091225001.p12 b/Resource/agentic_mid_091225001.p12 new file mode 100644 index 0000000000000000000000000000000000000000..818ee4635a32c56029aceafdf8befc3b7ad59427 GIT binary patch literal 5008 zcmd6qXFwC%w#O$05JC|t0@9=x%OoUpRE*M_R269gLI43FpcDxSMNvdSng&5Y5eQY9 zNC{m)q)8D(X`&PbREi?y4c>Fl{QyEFmI%QkZ@IGR5qOq%hk-vNcFSC^Mq|uwrF_As$lT*Fg$A zoRQ@Zk(n3r1t%gYaBoQW04cEkhX^dDd){lh2~Z+G9su$7F5Gty;eNb#faky3}dt_m*|5>{X(eNw{4;^OqZAH-zR>`nH6jiGu{e$MgItJZA|j^S)@B|7*)7n0vfkk zZvzQG#eYs5DH(TU&u1VC=)7UFl(;I?tTouHo6YSPVeAio+)!&|Ww|e-P4>W6{^?Nd z6ywAyI06R1cD^C#yCKMAfXPK}DzaWno+hla&fi?CSN!Nz!qczs**_F>jn)e1>AhdP z={xXlk;6t%{OF|DaYCWVy{V+{{-P~~!I=lf=y|f=-gTobwwAut_hJLrFFtQAY_*=r z#R6r5S6$X*B7YPiBDb>g3#;@O%YJ}eZ>OU-#rij z0SurF^_8KXA~c5s4gh$_S_AUp0$FqgjS;=D-5)D+a3+E^YL%& zAdDbU@2~72RFM>fBBWy=egyu>j-m>vprV3NQN*IrAX-@ogH-?({`L*P3uqL`ydB$& zTyP6BG#iN89m~hDr)ZI;OXn&NF;c9I(Ueh zJNptvb$xyP2%avYc+KAoDu7BDMYIYAt)R5cpyG}pcm%x<Y3b|#A{pLfC6zXrZKMV)$93S!xog$_!Imm%6GCy zR<$cWmXmwf^u91hp10B0R;l`j=O`{r70crtG(**YNqs(W+KX6nnZ3(JOB_ zC!J++{+9r5XC|h7OCPhgO0Nv*B~0wLvKyeiczn1$>f*^6TWJ<|O#(wHpAFfVTF1B~ zx*l**j)7y&sqX@o$5fnDyxFqyjH}L3LxShz7e&8kF@$5oTa(B8x~Az~kwGWhQI5r5 zW%-27m)aavRMdwG&fzBHRP^x z?pV07L)sLg*CHL9#Kxg2X}+bgVO{S=foAqf+X2dx&fu(8#Xot+ z0|9^J3p2nA${s!t_0ACQW`G`)5$pg9zzhNx{WsEK<52l{_gB(kuaFd28>BZw?a&{j zD_|fdu!Z0DN}@3eXyt8R5TOc?w?BvfvC5LucHVKj0+Me5 zAUO&SrTI!Tf#lp1T@&|@8=iTN;7L*?3T)>`(--WqUK5JW{A?q}~5q-m?RQA?_Sz4l% z$icHi?IauZQ|;wg`}|AryDsilk?i1%wj599BfZzj{h8RrWUxMV@@CqR0Mz^2SA;m} zyBvi!K2b-(nc0jfv<9fQGxQD#|ND@^|1LU2KobfgBH#*An9Bb&-#(BrJwZ~KG9ft) zYSf+a1b;|joC7J0pP)e7`)5qCZXfF4Owh>-knF|@tF*k9h~sXMKN-{+P95q{YbZiZ z#M=j7JvTnGj!&yRyZ)ngWfy~xRlH%nVwB*A{wq@I9kz2XW=F5tNqWYdPUQ#J>{Ypc zyvV$!L|k{@bRE*QrO#&-HmP#+dKfRCu<9xHU=EnF8&s37zE^%#G)=B(WuKq2-htfV zxn2AVa#F#tP<0Wke-SXRb>nPYCNICsm81Ads^oDyUZrLGp{IjFK_lTNW$Qe{cih-+ zt~pqM?C!q&`fV<8Up{^1({&3q;TUFpqdu&>qSCv@kjt+t*paDg*lp0^T2v`|NP;#J z$lYxs)XVV9tSIR1NI*vxZxeHm!X!(O%m*I%)s@IGiLA?KpXS~m-T1Nlben3nxNFlJ z0Y_=#EaFWcuT~X7mhhay@fh!ok28X8zZcNWC8hUa1AV$iwZ%txte)fWRgc^G)0kKfgiuttc zdeY42tX)8HVFOBk?A$eC>Z;NxPoC#5^Sg{|{Uxrn2!)3qsXX@2CUhwVvOLEH@BxVA z@z3OE>H9F1aNnN??;-X%tM9>1wOyPMm(amwUsoT4)|a9 zY@uD{!znJFT-}(ybWMEoCvQ$f>isv`a*N>ttW856rVYV`A13-Ub555^G)d7Z(+?)& z`Ik@}c_L%-VoX=c_C$0Tobx*vOv+FiF)>pF{Qd zU{w!gMu?`_q(>B(>nB}Ns-V9`i(y51&dMB?E@2r@7->0T7%7GSTyo`CW?7f%@v2Up zYyNjq`dT#&2QS5Be`RFmvo=wTSbz4*FguI+5gYBxChMqXx`1#%6;r81-QDr5Z?+#x zv+1J?Pmy;XCus}PGP$p}+SsXP-{0Q_th?B@y;Em_^(Rjv3|6F(Vbj4YbA)R+m+ zpP&|zvSgdYYAWZae#CPQ?ne{J@H$Ch?Mo-Z2o<%-$Ct;#-PrVOn+Iz**b6OTy#vcd z!p5)38#Kuz{+Xv0k;>M0@)guXRirF39m8P4O4n0)U+`VuavF$?E{z)=a(?w5;0-YuS<%wA)B8WPSKS@w;0%ug^C1By49AxfJcid5#t<#ozmWEcl=v zE+P1JbCudybJOF6V%EOzy0$lu2%0p7f^QQNUap6_9(z@ToAaJxXSt3}TilCh6EaWC zB_PceP&VXGs?_Q_CF*D(o#ZbYpTc*2X*7%Oy^w`w~(_>H=CI zp!tSNm7mTb%S?1g?A1p1W<Oh{4he8!*$9QgROU!3Q1 zzeQPIe(qk%gRqQRw&gPv5Oa6iF4Pr+>JEfcTJQ4-ZAE(whECbe<)rbLJg7eR!Prx| z4qP{JM+I2OCGZdGXt&?W(?f~iJ5KT*FeH8UWU8_8oH}#kG`^=3_rg4?o1||h)9LZj zhyM6S#}jX#4F7l^B_k^@D;i&4uOP7IYSXg_``=y1k z#dLKoV`P6Wu{x_%Rie(a?9rRsyJ}6@Idq~g%b$0yxaXd&_v}`eJH?I+A+*P@y6; z8#b+9)4cr+ufH1{d60NBHX@s3?_DjZx0OGWt3k0$%VN~8oR~KE_wEh(RL$~NBlP`c){yG z*lWC&Ry-wJ<${YtVm!HlV=3AF=iMGM>ah?dB?stXn*{?Am!I%NtuFh^hrU}*uYR%I a(p;~VoomSucQ-$qEJ_|A+lNs%Q~9L6r|7)$njr@a3n4uxBlfx@i>$skB!_5aHhE0KZ1Y7faaAO)eyg!XL4k1s(5)ch z6c`M++G4@7g-^JNSnR3uq7f=Dgnans-(&tm>X^M{MVtCyR*@i~y68pB2!F#w#&Mro zAwQR&PT&Y@9;YnJ_ciiM!*-83X`OsPHAky&b+yW8@c2kW>_8`yeqwU1S${5R+XF99Y;(3Q+CwN;Q;VTPeBYoo#U4 zAAKi?GwD;2-M6t(%OEDPXO+6XbG>(js08;6#%hxxL!^Ys(=gm5GkSs-Isd)4bWH3* z6M?bg;wR-7tyxb>hVzHd)7mGOZN_(d?c===o&JS-!8jQRbQ<>w-5|hx^a>S(m zogy3o17JI!5cJ*dH4yEjJkJbgc{Bth4aR)vY>w14mhAGE%2}!l3z{X!=gl3eW5exOI zP}@FYKcEG9t3y#-A#ZOW5Q<0y?4fAxfHO31`(q#vEEEykjsUSU{x^0IhLC9RS9TDG z7$^v3NXJ6_2>**6Wju((yf}?&Iy~DPc+q2$awd2ncfb zc9qc5{GCA@sDf3-;ISB-${!5=+XRnbL_ncGqVnvBYELlGvWKo~2Y~;4TmK2ba=Q3u zo#L(yT5q86OH}o~zSIj_z5p(8HSu{$OIz1WYa{if zCMz~Lu4cdB4eo2|vLSSFRorl#b=`I9v(6@AX_A#f#cr6#jpUNYsGh;^o+s->iPL6R zdiI35yGo)Zb49N)2O-0v-d4TI=BM5C3p~I<-Z$^YenL?bqqS7{K!!0<&dBa_%jRIq z6zaYLahNfpxr7PfEv4J@bEz|!=Xi3~ZgYCQp#Q#mb&J{$yxscgHJ37nV)SRrUjHp*;ZT98-|^V-MAIpy5# zqQqw+74u-Taj|+=15sU?Pv@I*P<5ia#=zF+W8EEJ=|0p5omLd_!JM3+xamR*Q7$7a zrau<9lHfLJkh&C$PRI5K=s7T~or)fLQR#D;?L;cyX#2_ga+1y!sJc^wX#dLv@^m|M5?N*pw4WLKN%zL{qG{oL)TuMGwL9{AH5u||%xF~nQ5 zT=26}3aaK_Kt=Moj-g@TB}a{2FQu?Ovf$O{?-PpAA@A9y)6v)$9T%^5Y`po(u55=P z$AV{r^|qm4Bxj2ld-@;{j!eZVdF!`c`quog&v2{na3NylL!CX|%1SezWmP_$p>f2^`(+Rig>S3q(C0FvY2&@x{`5Kb@B z?ik59cFL;upkPM(1GNqZ$(9(ZwRq?Hb#9pMekw6}Qk(VR(^++LhyGA&7kj|u>U%C3CHEsd zL%5hE500}hY>tIR%i4d4x?%L+vLAXN+vUgSO!$oHE$M8lO8ANR!sZ1eJw3*_?%v%A z>O0aBHOqZ9A~%9m!cnZng7vGKw0op3=lpf!@}=J@ zbx>_*>M4l-t3>>B%4q#wbOHfQD2W0AH;}?y^~-&GL&jXlKw-{O}rM6FR)Ni~~8~K@DygJQ#;Kehs zs+;>gFHSYODQ6E6?q0fEu9%Fr6iI;#3alQWOC}!cs)&<&uK`4S!Idq}1wGq{VDnXe zlNm?(A@8s}>nA3&WxdpwAg^Cj_258_KtLn2|7vE@%2eD`dUN`-$M3JqwcQgjP0I#J z(W!%n2e@Zj%si_MA_G3MNPRl%W5;Tdwzukf4cF!CgZi{k-d6qkeS!{G1>iZJ9m2K7 zKQ8Z0{LnL8X4s`~W|R?XWfmVA1CMa4-B9g6Om7PB!7+zPe$zFsFYj z?xxbFVM1R9G&+sFncEnf97e+C4T9N*(}pd2iha3`72#i;I);tw;9ASbOvGgr* zYi^z)FRKCY3G^1VK4>?L-XEJ`MAzVkZcvNm{?p~P0H>%#qiDbnyfk7m|@OY zN(`k|DL{9|!mjDs%G7>oK({u2s3WqmJV`7~{vwBnwDY%MyJ#|@a&SJK+_p=1e}au7G_mtiQ!2C7gEx6eVe^gc+NFrWjKiXxwzcwA1r*7r^`HPAEik($22m1boedTP@dDS50lP3t#_ z*X&r}bJBjE(gBBCWhR$}ParKc&QSE)M z?SQS8?Z22Vv94g2qN_WtZ7l1+(CsF|N$5^mm?~{8zI}HyyV{$_mG}u(xY5vlNqnE3 z@0>yOTK|Cf$ocZ@(hQp1o}=eVi1+msh@l;J-EL*3tU{V=V6JL*W{-`}hyjR_59Nx$ zeCp*9{xX{@Z6F`qkh%-?x$u8Y981V)bhw}+T=J#_~UvaHA6WRJxg-7Pbc zrx52l?B7hqs^c9ToerU*?ng28x|xg|bUjnwDdF?AQW!u=7BG5c*Kd4vJ7Bc;XO~Kw zOPpF>qk|qw-##I{l3gXiS#6Tcy|pk>+WAIvRtatM6P?Dicz(5=1D2q*@8`U4s8o>R z%3?tXa8PB2(^DlaKIxC>?ukh#?3TF@D@YqK1urM^wzQpo0(k2g9M-0xVPz>+Q@l@ z2!r&#xZ7I=3dS;_JOf@Q;6UO)0G>Lo~ZUI^clKVcoidyeed|N2>N`$eZt5u>SahT>&E`tPKcWA?RQO^aL zzI3Sy90_0hfB(l0eh9>DZfq4pbwdX4^=GR6qcHW^4+$e7e#$tCAGh6$pR19Cm*bV>xh(VXTPsf{XC1SY$kV*m@^Zqh|u{>yh30`R4E_tAgun32a^~G0wO2ZZd|5 zuFE61e7QzHpOBrq1e>3^ulun)xtOiO*><-2)xl-!3?cq-rb53thq?QgW83R^GmZNOQxR3Mo(n3i5L zTr+%=2}TFYC9}FylUZFM*byWnO8zp0$e<=8QXn`1BvavN8GmFQVt`TQlHm~`86HZ@ z@B^ghfNH^s)MU5^gkJ^8u;E-PI1CQwK+0kgsbhfp0bGEYt@kkU(1_Y5v0g&%toaV@XHzP7k_}5v%XaFiQj0J#R zg#k{6!GP%I0%m_Rp#pW1DIrnA-6(s0v|xhNO2a44CvKo2u6tvvX;dPiMcdla7?5H7 z6fmYF#h$`X!-JhKE>PqhYq5hh3f;0fZIC})vGK`EeEn9p_MYa+<3vLpor>@Hh{4Px z+J%NM8^g@7x0YQuJ45)9Lll+gm_Ewr#pBM1fpPBS@hV<6Dmd@D$>>hG;M`+NT}y1Q zf`f@6g}&o?0=;W>#HTJqfL4;s78t~xnVMRL3HNVv$-KCPbhGtKB@Rn|6P|V%Y8;rF z^ktOyqhia=c8+CHy711*%+-_I_tmoSm{sE`ah(OX4-0#uw*}6z8;A*Rh7A>;6H6Rf zOy`DE!2sB=UkF+^DiR5RVL#=>B4<4n7w*`hyKQL-%13sr@;LW49gL@l=8Wu2C9`gh zy+mT*qrE5lDw{J)+k-m|^|>g~kU&?_^9v$X6k$%5T&MX8z6Vw-9860ix?ZZ&X%+El z=2zPsDMZPnl<;e1f;_+J@Nlo*D*2N5k!Em-`>@i4yt??57|Warl9UCq{$vyVQ6v>L z3J{S#tGUgP%%ya9W_3vdRkfvbQn-~+e;Hvd2r0VE&`U;zx&gHS62wXy&XKmm9F z4Ye33MnW+f8bJdm0W~OF5vt+{WfK4*RM8f&gsM3Mc2EyOSx6`g^^ZDGCL{;szi0trAhy*j)@3fhZCFG07k$hnS+Ad%0cM9*n3N17hK(!14^5MP|LZcAn z^Gu8L`PlfSv-H(%pA<<0T2qu4Ox{a76RctwXC<~NbV!^l^Nmh()qr3L%juwWy?-Mm z^g#|t>F#oE<-+fx*`_scov7lc>kKVvAqI_QC5z!B_M72Z&O6uhuG`;dE>}aKJZqP( z)G3~@d;cx^w*I3NF{?&7DJBBaW@D5P3k3s8Eyk+C6Q1bkY7)*2E^0^~%`eb?kv5!< zNl63S;@?E&C663ehF}TD|ksQ-k-Ud*lqMt5WGxFU;x4Ozvp| zI;~uzpXu0dp{6T`qI9qxy)hSjn>Xe$fReIcVB#60UC-&nlP8*DzLdRGbYi)F_Cn%H z{^e3yhAZ1^BHW3Wr9R4uy1MA=oS9osD{Rzz8^s+Ym%}rUMI^qTyJWr^6Y)}xe~{bJ zR^|Q>!u)P`oPO1)g!VFDGPXxNUtD<&HEluG2#H!|djBnP7UoXO2a1@EqU6xep!p zT-0w>1$^svoh{$LSR%6H+bARz)R$nW*H-in4?^uS3E zoc2$5J?IZS7Y`vQ$X#*J{r@ZxOTY-whJ<1X7z0KinXdNdBo59obj8$Ux_k)Efv(J7 zwFA#3(=LN#+671_oImw*=-?~_r-SqZTqri=#a$5hl4Tf)B-fU3xLj z`=lV{yvPX&8@nby0$ubOOtJK)aHNIAthokhVcFO@m}Mr0{UemCbpT-WJj`Y4sC)!wN-Wd1r=fabx(8g3>LEZQ0;)-Z~y z+HST>)J1GIYjWAa*@~Hm*-M)0o^45_Dv9SWPhs>c`8?F`eAJ8dx|*3&aYqVqQ^9O5 zK9onqO1`4cs_3q`&h7Cz%4OZsa!S@$e{D(cu*==s$(I8QwYK#H8}psDeVsI1IEc9c zXK}x83}4}$xBf~~8QN&GDU#D+)W^|l>>klK8-29-MyBm@Ws+>075lYvP_*Hl@&kwc+%Fn@dOEa#Z)l^` zk!4bCk3XM`E!fajEMqITr%edNzq~w26mv#lcfHTwO^;*z8r&2?+tS1OZJZNpd=bNi z6daHYX>Xa0PbBVo?cA`5TIRM>hr?jhWa_69Hf@>uNtGA8EuA%)@G@Y~uJV;ETtdt9 zpih_>>pXW{>#@K%s&U!Rx;K^{crTc?I+~qQW?(q7Rl(QMZvUn~h5Iy$n`{R1crm_igUyCr*Pjr3{RTIsa!rK98Xe|Yh8zszeD6Q%bT>~q z+^KzUParmqm^|q%Eyqb;But3;CW!7>W6I4)yjdMgBrBS{yej4yyT0Cg=#90N)tHus z>sI*IGb6(tspP3-f?bUAN=W3A6jh!sb(ShQW^LF5Q59Ju_Wr$v%SMTnpyEZj;-HgX z+cy!$wE;C+6Q*Hmri+frN0Q~g-!xQg8^A?**w%%}hh=-6!qdOQSGP;HPIz^$at2tl ziHH)&1wjw@c5BQkyqJG`!7}5g>BBJj*!tLgd%W6lo90c!s_7}yOcN278|(Go+32+q zSNp7zkIvt73q|>*xNR$4TxuRDQGU6~G<5Ga1wSG#H)2W`zn=Zru=CoW_gdLe4;eQn zY->$Y3{^Mp$g8Dqn(ecWT8i+^*@3C9dM|#CtbyVW@%d{J`0qi*G9|aU^e=r)%e9#Q zSiWgkeMVwG!lIOTjJPR;FiK#2$zw5kaxeC{W4Hx1c467@?i5$Pg6aJhtXVH}lAdxs z%}h)fYN=t|h$+RLG;4mEA&%1Lo?gY?KjLv^#qG=_EPY1W9OPTQifE8)ErmxPx)TN0 z9K78%w0JC^ysX#hHj`OUN5}GoHu=!02Tvr%2SfF@rH}QDNk41a^BQa%k&q^E2o;a| z(}vftNi$ASx(mPGb*A5N+j0G>7Db2{(vzI~nwmZMUZ38IA!F!++RiAL0%Oy)_wn`b zN8XfD-CYmNTFiK!x+SxK_|tm>7!Mvikl)X6wx)_ zu&g!+%RifB9DXdkj!%Cvr}A{)eZtwZXU-j2YIWAm`Qvhj-rWfQuO4%cAKZ(kmucOe ztS!ykuDS()oXjrRTqk1 zxdK5r7Z+o*5aHULg^yvE5;8+vv0DyY-*pma>bvP5i>4IZ@#gkKnZNze(sq;j4ZDHf z>gC@QO+T=RzU-GXR4KnQ>14gvCYP!gwu%}pRDZTN$b4&td9y_Mm1F*OhIX&8tXBw9 zP|efC)s5%*`?wn~Kh^d7_5NYwnv{JmN8#uhvk0Fex-tPRIhOZv!aX|SEz`_N8s(F4 zv~ZdWgQfC31BzE?x%&VA|BxJrJUEV8g=@m>si@)59|g5w?TJFv$w`^5xbv9dTAo7D z?EWNS__9KxA6Q-v7Y<%L*r;38`TeUe9x>3dp|Y5`{w;O#Rd!Ja;g5Cf?|ChIY^JV{ zmhxWVErOd`&nZfU^It=1JC04*Xjx8Tj-I`c*})Y|Xc_G14Gs0|C7fD8U(dUNX4ZN( zy5$RB4P4Cp%!w%qyxV$Mz}jO+jhUbInKd~=3S=o>*Qjpm1J|N zsL*}qg*6=n4=rn*$LUy)Zxu=LEjPc;UvpX@rMU7vOM}VwHeeY7XVuTxmh@C}_$;(* z7eQ-=VG@eq$}oT*cj)a7V!?Ztz5pl`%k@Xpe48-FvbbN`)^3+o{RiMZ-H;X=;l^sczaji0B)i!c?6k)G#qADIX zc|&@=9JjW^CtZELy=VJqSnS%#P5i@v>FW_Zl#E@;vE-611VzYXlyzr7}nkW>wxn9w;; +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCMvaQOeFohpEaB +WW6TR29TnuTYpNuBwAUdJx0nUUcnToD4vNgokr9KYV9VADUL8HnZPisUlh4FGjbk +p6Q9HNm/ZAG7IYdiL1Gj1a318HIn9IfHSvxILCV0UktLrf45iNCblAbnuvP11Q4B +5V/Gg8R/HjHSykHRNM3K2FYlaQjP2hmV2rEcEgMCHPRX2PqsIOG+X05fNss8ZldS +ygnD0ZIJa7OI8MYIeUmUNfgwfRmbl5erNIZ4wWqbVuoxbWN3l3TVKv0i3mrSu8/d +3HYLO3cDEqCeaY4PPlTmYFprcRl21usi2WC7LidL523s5/wkih9FFFEmIPeF0qdF +JpPX6ZkZAgMBAAECggEARKHKGgBYu6UXeMZ65LlmMZn/sSIbpRdVpxTG48B/+UwQ +GrxEkOyW+hen3JSgSbU4RldJvN1DwGs7L6AMuHyUNv/21CGSmq/GmSV/krpxgMh/ +WhFYG33juejTrREpMzdjuyqhf2msxEnkbcpEPVNOhEreMxPMqs+cN3nt8Ipa8LiF +qIRwHvC/MpzTzU0TiyLn6EBI+PNsBGPwQVSCulI42JMg82EsR4iUxJBd8429x9Fw +8U6naGLJnVecSsQAAkSTZwPKQVSok3a4Lcu0n0HCDthwgq323QQWug8cy7y6qZYs +lUJvZEKNX/WZzRomK39JeDmSFDlykIA+lu1G1c32rQKBgQDvqJkxpIMhzuq6pPe2 +vntJkRo2NA25g9MoYk7HdObMSgg5HXnTm2TuV+smPjkwtdDEt4elUETGkRuzABT+ +nkP6stxpcmBCH4brk9uxZJq9LoHFuaByg9xABMJ6Tu47EOubxFYkbEvttk4Y9neA +p0SR08Jqhb64Me79wVo40lGWRwKBgQCWVl2iAyNVMZgMbHiAF3kMjHZbEYQzxi09 +VOh0V3r+81XZOaXXf3jh/bLw/qjcRNc3Bq3Lg5wtW96/gBmQMLisYrtgzqj/pX2c +nfvITcp9J+Bo/qvC+6/5tZXoCOPORVvYSP82lU90sCEPSKQfU3p+G16WMnRoiGwR +dnAu8NMlnwKBgGosPUIa6eVOb/skHoIdPS1IVV5yDSqE1kVr2A7RIXabzazP/Crd +Cwf0dz7IDjogMk8UJ8n7F50IqEbS4Ho0z1T/bFpiy3Y/1VwEcy3RriPluKRKKmTR +OgA6m5Xn5e7Q/jBR+P/F4pV7UHoKpsKeV+hq8hSTD/02UfSldjz6IB79AoGAQCsK ++i0GtsVdVegyotHiDBYkKojWedbb1nLYaVgxmoK4oOh3Pf0d1rAX4b+AycvkZItI +QTaiwcWV1P1Ta/UvzfyyaAatobi8Xc4c+wkhJbyQj6AsJiSRny7/ljO9MHzwT+gQ +bvbaHD9VTRW/X9Oc1BjQjaFpiHi6T9XS2mZWaZcCgYAlS9lziK6vycWqX/RSZRWl +JV/WDT3JXc6gKkNv7siAvqhMC6/FO4Ghz9UzA38MYWcdZqoMb49nKjTPSWf07rrq +fai8rALHk2M0MEhIh6HtPWpob6ppqqbR2Jt7wdn7eMIkuVlazAjsT6SE/nOrXiHq +RZTY/futke3TdKOTzkNCNA== +-----END PRIVATE KEY----- diff --git a/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.key b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.key new file mode 100644 index 0000000..ee09326 --- /dev/null +++ b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.key @@ -0,0 +1,34 @@ +Bag Attributes + localKeyID: 01 + friendlyName: serialNumber=1764104507829324018353,CN=agentic_mid_091225001 +Key Attributes: +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQY/OLJ/E9JbBiSUz0 +Pv8qzwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEESL/NuBiLQEhmwN +gZbgimoEggTQMtrP+AL1SX+Zle+EpXuP55MKXDyk/FxTAiPgFieKuMUNnHignD0j +wf39Pd+7g9otFPldBTeI39kJ3DOuxRNHDHn0cGRwfqG96dL5/F43BtAQ34Om33/N +Nm4QxSHIbxX185cMOdOTDrCKICxWx8C0nERm8q+JcUqxbJZvj2UqqGby3++UE5Ho +Wa8moKdIZumgNm9cGs2LKGwuZ9y7BmAUdYYLTl326m4WVGbRdpCBlOgGFyT9FK4w +379OlUYTudTSZ1xatGXHNX4o4LM8hy614fsQv/av4u50WNHf6DLI593p1vwH6Pmz +GgsRP7Gs8EiOzZbjVeY/CuoFCrmBvlBsb338UCvM4325vucJ44FhwArig0PygMFA +d93W/KmnpS9OrZ9BmMMbgFr6Gl9LELupcNhm2U0Set+AgEt8OTGPM1iFUhDb2Q66 +FVP5PKH+o07ueVItpuwE/dLuyJH+nE5v5ZmOARpg3UaZOm8QKfakfSXpkImA0/79 +ILVJgJB7Ws8fgrFCYY0PMtgnOBHCcEOW+8yp/7/8G6FMBSEpdoMbHXd3+ewTHGzn +SjATv/5VVOrf5hBXNPCIpgpdlqVXzwErbnaew8L1BxSYElNh0pLCyWiKEjQLp+9D +96GEwErmt03+PReMHakpz1n+rg32B0Bhv5cjSa51IpjD67KELhgHCFZFWMJTNYAR +8fpJ1NGu30UCDB8D01RV5G2C3s821CV51oyA8V4YvpcFnGn7uKStfHYci8db9zW3 +w3B+g8usJBF+PHWsq8CYEVDMknkbRrmL0aGECYQvC4Um0mJKzuaBsuts59FyTXPa +ATBQwe0p2+FUUTa6At2HMzBnuuRYKpiUoBoQJu1Q19xyiDTyUc/65c6gL53wH4W4 +O4YC5b+j4OAmUCqoY5bmxCRV7q/U9TSxzpoZBR8ybGYVZnphPydEEZsP4x/86NyW +ylGgafHciui5rAkxZesufiNLO2vyl0CUnbqzpe3UZ3n6bat0q3faxEW7PCg0Tztf +bALNg4MCVst6gmvEq+l+zw+GW28i9Xhwx4VgVS/tpEJTFl7UAkbVaoqr+2qLp2MX +258eB+gmfJNjrCElYdEHqYEXKwlHyV2EHy+GS/8ahwJQ9j3z//rqpL0GxgVoIub0 +zAFlNuv+qX61B51Bau1bsp+Sk6XvKAvut/lOuPgpl+JPeGwL3kWrg+oW8/MRn0T0 +zzh47UenJdYUf2Lh9VhHW+cwJyeOwE0k4rlg1JIsSbd10TcxxfYBvxnBF144+BtI +i9AwfuRAb980/OHe0IAdZxt0jbsMGw43tR5DU+T2KCQeQSmpuY60tCy++WLFqZM8 ++h77ipN9VOlSGwutQF01LNGENWqQhOKCGUuvZ7sbge2gkxPTqG4VW/WiB9Cxg7GG +TgMYSeUNxkFzX23cK7gGNLNEYjiiDfWoucKyD7h7JzExh2xyoSeymjX1iu3Vf55j +KKlUOd7CktnRW/iCMeRxwVuX02b2EXBX2puP9SxK6b2Uhdelk19uIPwzsSe0Cjkg +yi6WU04RyTdzN5i4vzVZWKzgESa7p/zW4zcH90aY8s4l9SVjhWBIxROvGFI6wl7Q +mleluItI1AmIBa2XS6aVnszJmTtGxWr+Xhgj8mZN0jOlZnSxzWDtmTk= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.p8 b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.p8 new file mode 100644 index 0000000..b429cb3 --- /dev/null +++ b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.p8 @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQl7ce1kY3m4lcIjqI +FvSLTQICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEI55kACIM3MiTYiH +y2N7iT4EggTQvGYQSNdpkT9Kt76u2hjOnpzCvcAr9EdrB8YZ+SNuRh942ntoppJZ +UHkYVaGgOWUSqPotnrxZvLaV2QFLTWxfCYy7rYgq9DtfIxaMtH62++u4MSOpFa5B +phsDuLFZsUUQKCIrGwVCu+tq5EHG/yH6iKRAJpIGAAmrYMZFjgOSWFTkpxN9hq6A +tf+v0D+MU1+xu7V0XNwtxPLQIlFBMTwlsxhxxf1NkFZBmAsOXM8e1GiQ44HNv1fC +hAPIymdtYVHE/QbJ++MLtwTvmnZzrsjdZTDaVTl64R2mE5MFJtH4UX4f6LWpJ6Ax +rxM2QKi35LE+7d8/nOyBvyNuITUmzMOcaE/f+iKLAHHt5zigolK1LphgjnXMlXuH +LnjID4hbpRdmYFU/Xy+hcDU3gjpkQewZfLJ+BzkhdBSd9I+f4UGRCVwYSyX1sB0L +CazGCrdFCDMB5MS54ehBE7V30sGEDBfpSYpsinCRxdCdMv3/ejhR+rmhdKhn9svF +zMht2RGirtti2dTEbIIVu/eyI9huIdAPecd5OS7dXw7SxrCrKdfBFePlwqS9oacR +WfiKxOUcxQiXICPgCDdNWUT4nLSn+tiAplgqVz383HKp1EILllzOOwxDOeHqDRqj +f0rLSXI1WsWDsmuvcxn7iKJZny3QvVtMK31Rc0W7XelMQzcL+9aSLkOd4Ijt3vZ1 +Dp91pR5IqKUq/xU4wqUnEAhr7YLB5rC+1DSe/zToQlBuMxWVX4E+4O0nZWaqrgw9 +S4+iqVVNTITib3uy5LD42DEbwdeI+zyDwsUlDavw15f12/NzKkFG9lsnFq+cEyQF +S6VOuHldwvcYmxsgzZwS4Jx6oopAb32kiBWPAeQsf6csjTnTp1xLWmS6gjK2CfZi +H6LZ9ere8jJEkw0dAAzis+CJ7et4uijZtbcAQ+4SeUd+OPefYAMAIEXVZZTR6XqL +D9SAcsDLOM3ZCZErFPVtsgda8b+KID7Yd9Kp/s1PMMJl2D6kx9ZmDWHOY+hQb/G7 +OuDvv0V7DqIFENkRQ/sWR2GHebQokkZiEafksay1ypWPtyjHEmAhoDmP0o5JaWW3 +YV+d0G3Ip3j7lbwgvKeiWaZeKcVRYeuWFCyA64uWWFW1MjP++G0/Arzds4FFU8xV +MAIQ0Blol4bNL9CWlEfoyKx+ko+bBYlhewGGwW4xtmU5zCiqCXYXH+K8AFlOb3gJ +1i6odYBhyox56O8zFMAGEFgsoIln7//l4NEsHPtN8eVLvO9I69tuluXdBdp2XGIP +vscL9Z1rq9KVf3AMO6CKmIO6KuTxhWqo8s3riJBgE3SPjkd4xtZQGW8UX0wE/oZI +8Z3VW6QwrD/Z2FXcSwnusOZr9aklmxRo7JEAnV9cOnF2tf6mOhNmJk5j2CajCBIV +/e+LelsFt9hqOc7micvKZzsZWrv/mFUUHeZaqTaIhMGy679/7g7+69Ncr+XORxWJ +tqhJ59zMW5r52wEZfLF4gtYBoQTh6lDYRPLigLPx9s4/nsVhc+MSnWp3MfYfwfdK +Rw+8X/wCXYMvfOKzat/xs7Vdi9VAgoBXsgeFmTnSi/LcHJdLuPDE3HeEkoKvIh5O +rDFSBRV22vxCU5MDEicgCFFPuUvHZXDavAOv0yDGprV2YLS+xrmTVk0= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.pem b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.pem new file mode 100644 index 0000000..ee09326 --- /dev/null +++ b/Resource/agentic_mid_091225001_new_generated_mle_private_key_encrypted.pem @@ -0,0 +1,34 @@ +Bag Attributes + localKeyID: 01 + friendlyName: serialNumber=1764104507829324018353,CN=agentic_mid_091225001 +Key Attributes: +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQY/OLJ/E9JbBiSUz0 +Pv8qzwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEESL/NuBiLQEhmwN +gZbgimoEggTQMtrP+AL1SX+Zle+EpXuP55MKXDyk/FxTAiPgFieKuMUNnHignD0j +wf39Pd+7g9otFPldBTeI39kJ3DOuxRNHDHn0cGRwfqG96dL5/F43BtAQ34Om33/N +Nm4QxSHIbxX185cMOdOTDrCKICxWx8C0nERm8q+JcUqxbJZvj2UqqGby3++UE5Ho +Wa8moKdIZumgNm9cGs2LKGwuZ9y7BmAUdYYLTl326m4WVGbRdpCBlOgGFyT9FK4w +379OlUYTudTSZ1xatGXHNX4o4LM8hy614fsQv/av4u50WNHf6DLI593p1vwH6Pmz +GgsRP7Gs8EiOzZbjVeY/CuoFCrmBvlBsb338UCvM4325vucJ44FhwArig0PygMFA +d93W/KmnpS9OrZ9BmMMbgFr6Gl9LELupcNhm2U0Set+AgEt8OTGPM1iFUhDb2Q66 +FVP5PKH+o07ueVItpuwE/dLuyJH+nE5v5ZmOARpg3UaZOm8QKfakfSXpkImA0/79 +ILVJgJB7Ws8fgrFCYY0PMtgnOBHCcEOW+8yp/7/8G6FMBSEpdoMbHXd3+ewTHGzn +SjATv/5VVOrf5hBXNPCIpgpdlqVXzwErbnaew8L1BxSYElNh0pLCyWiKEjQLp+9D +96GEwErmt03+PReMHakpz1n+rg32B0Bhv5cjSa51IpjD67KELhgHCFZFWMJTNYAR +8fpJ1NGu30UCDB8D01RV5G2C3s821CV51oyA8V4YvpcFnGn7uKStfHYci8db9zW3 +w3B+g8usJBF+PHWsq8CYEVDMknkbRrmL0aGECYQvC4Um0mJKzuaBsuts59FyTXPa +ATBQwe0p2+FUUTa6At2HMzBnuuRYKpiUoBoQJu1Q19xyiDTyUc/65c6gL53wH4W4 +O4YC5b+j4OAmUCqoY5bmxCRV7q/U9TSxzpoZBR8ybGYVZnphPydEEZsP4x/86NyW +ylGgafHciui5rAkxZesufiNLO2vyl0CUnbqzpe3UZ3n6bat0q3faxEW7PCg0Tztf +bALNg4MCVst6gmvEq+l+zw+GW28i9Xhwx4VgVS/tpEJTFl7UAkbVaoqr+2qLp2MX +258eB+gmfJNjrCElYdEHqYEXKwlHyV2EHy+GS/8ahwJQ9j3z//rqpL0GxgVoIub0 +zAFlNuv+qX61B51Bau1bsp+Sk6XvKAvut/lOuPgpl+JPeGwL3kWrg+oW8/MRn0T0 +zzh47UenJdYUf2Lh9VhHW+cwJyeOwE0k4rlg1JIsSbd10TcxxfYBvxnBF144+BtI +i9AwfuRAb980/OHe0IAdZxt0jbsMGw43tR5DU+T2KCQeQSmpuY60tCy++WLFqZM8 ++h77ipN9VOlSGwutQF01LNGENWqQhOKCGUuvZ7sbge2gkxPTqG4VW/WiB9Cxg7GG +TgMYSeUNxkFzX23cK7gGNLNEYjiiDfWoucKyD7h7JzExh2xyoSeymjX1iu3Vf55j +KKlUOd7CktnRW/iCMeRxwVuX02b2EXBX2puP9SxK6b2Uhdelk19uIPwzsSe0Cjkg +yi6WU04RyTdzN5i4vzVZWKzgESa7p/zW4zcH90aY8s4l9SVjhWBIxROvGFI6wl7Q +mleluItI1AmIBa2XS6aVnszJmTtGxWr+Xhgj8mZN0jOlZnSxzWDtmTk= +-----END ENCRYPTED PRIVATE KEY----- diff --git a/Samples/MLEFeature/acp-api-example.js b/Samples/MLEFeature/acp-api-example.js new file mode 100644 index 0000000..c2b9505 --- /dev/null +++ b/Samples/MLEFeature/acp-api-example.js @@ -0,0 +1,159 @@ +'use strict'; + +var cybersourceRestApi = require('cybersource-rest-client'); +var path = require('path'); +var filePath = path.resolve('Data/ConfigurationWithMLE.js'); +var {MLEConfigurationWithRequestAndResponseMLE1,MLEConfigurationWithRequestAndResponseMLE2} = require(filePath); + +function acp_api_example(callback) { + try { + var configObject = new MLEConfigurationWithRequestAndResponseMLE2(); + // Change the config to MLEConfigurationWithRequestAndResponseMLE1 to for Global level Response MLE + var apiClient = new cybersourceRestApi.ApiClient(); + var requestObj = new cybersourceRestApi.AgenticCardEnrollmentRequest(); + + requestObj.clientCorrelationId = '3e1b7943-6567-4965-a32b-5aa93d057d35'; + var deviceInformation = new cybersourceRestApi.Acpv1tokensDeviceInformation(); + deviceInformation.userAgent = 'SampleUserAgent'; + deviceInformation.applicationName = 'My Magic App'; + deviceInformation.fingerprintSessionId = 'finSessionId'; + deviceInformation.country = 'US'; + var deviceInformationDeviceData = new cybersourceRestApi.Acpv1tokensDeviceInformationDeviceData(); + deviceInformationDeviceData.type = 'Mobile'; + deviceInformationDeviceData.manufacturer = 'Apple'; + deviceInformationDeviceData.brand = 'Apple'; + deviceInformationDeviceData.model = 'iPhone 16 Pro Max'; + deviceInformation.deviceData = deviceInformationDeviceData; + + deviceInformation.ipAddress = '192.168.0.100'; + deviceInformation.clientDeviceId = '000b2767814e4416999f4ee2b099491d2087'; + requestObj.deviceInformation = deviceInformation; + + var buyerInformation = new cybersourceRestApi.Acpv1tokensBuyerInformation(); + buyerInformation.language = 'en'; + buyerInformation.merchantCustomerId = '3e1b7943-6567-4965-a32b-5aa93d057d35'; + + var personalIdentification = new Array(); + var personalIdentification1 = new cybersourceRestApi.Acpv1tokensBuyerInformationPersonalIdentification(); + personalIdentification1.type = 'The identification type'; + personalIdentification1.id = '1'; + personalIdentification.push(personalIdentification1); + + buyerInformation.personalIdentification = personalIdentification; + + requestObj.buyerInformation = buyerInformation; + + var billTo = new cybersourceRestApi.Acpv1tokensBillTo(); + billTo.firstName = 'John'; + billTo.lastName = 'Doe'; + billTo.fullName = 'John Michael Doe'; + billTo.email = 'john.doe@example.com'; + billTo.countryCallingCode = '1'; + billTo.phoneNumber = '5551234567'; + billTo.numberIsVoiceOnly = false; + billTo.country = 'US'; + requestObj.billTo = billTo; + + var consumerIdentity = new cybersourceRestApi.Acpv1tokensConsumerIdentity(); + consumerIdentity.identityType = 'EMAIL_ADDRESS'; + consumerIdentity.identityValue = 'john.doe@example.com'; + consumerIdentity.identityProvider = 'PARTNER'; + consumerIdentity.identityProviderUrl = 'https://identity.partner.com'; + requestObj.consumerIdentity = consumerIdentity; + + var paymentInformation = new cybersourceRestApi.Acpv1tokensPaymentInformation(); + var paymentInformationCustomer = new cybersourceRestApi.Acpv1tokensPaymentInformationCustomer(); + paymentInformationCustomer.id = ''; + paymentInformation.customer = paymentInformationCustomer; + + var paymentInformationPaymentInstrument = new cybersourceRestApi.Acpv1tokensPaymentInformationPaymentInstrument(); + paymentInformationPaymentInstrument.id = ''; + paymentInformation.paymentInstrument = paymentInformationPaymentInstrument; + + var paymentInformationInstrumentIdentifier = new cybersourceRestApi.Acpv1tokensPaymentInformationInstrumentIdentifier(); + paymentInformationInstrumentIdentifier.id = '4044EB915C613A82E063AF598E0AE6EF'; + paymentInformation.instrumentIdentifier = paymentInformationInstrumentIdentifier; + + requestObj.paymentInformation = paymentInformation; + + var enrollmentReferenceData = new cybersourceRestApi.Acpv1tokensEnrollmentReferenceData(); + enrollmentReferenceData.enrollmentReferenceType = 'TOKEN_REFERENCE_ID'; + enrollmentReferenceData.enrollmentReferenceProvider = 'VTS'; + requestObj.enrollmentReferenceData = enrollmentReferenceData; + + + var assuranceData = new Array(); + var assuranceData1 = new cybersourceRestApi.Acpv1tokensAssuranceData(); + assuranceData1.verificationType = 'DEVICE'; + assuranceData1.verificationEntity = '10'; + + var verificationEvents = new Array(); + verificationEvents.push("01"); + assuranceData1.verificationEvents1 = verificationEvents; + + assuranceData1.verificationMethod = '02'; + assuranceData1.verificationResults = '01'; + assuranceData1.verificationTimestamp = '1735690745'; + var authenticationContext1 = new cybersourceRestApi.Acpv1tokensAuthenticationContext(); + authenticationContext1.action = 'AUTHENTICATE'; + assuranceData1.authenticationContext = authenticationContext1; + + var authenticatedIdentities1 = new cybersourceRestApi.Acpv1tokensAuthenticatedIdentities(); + authenticatedIdentities1.data = 'authenticatedData'; + authenticatedIdentities1.provider = 'VISA_PAYMENT_PASSKEY'; + authenticatedIdentities1.id = 'f48ac10b-58cc-4372-a567-0e02b2c3d489'; + assuranceData1.authenticatedIdentities = authenticatedIdentities1; + + assuranceData1.additionalData = ''; + assuranceData.push(assuranceData1); + + requestObj.assuranceData = assuranceData; + + + var consentData = new Array(); + var consentData1 = new cybersourceRestApi.Acpv1tokensConsentData(); + consentData1.id = '550e8400-e29b-41d4-a716-446655440000'; + consentData1.type = 'PERSONALIZATION'; + consentData1.source = 'CLIENT'; + consentData1.acceptedTime = '1719169800'; + consentData1.effectiveUntil = '1750705800'; + consentData.push(consentData1); + + requestObj.consentData = consentData; + + + var instance = new cybersourceRestApi.EnrollmentApi(configObject, apiClient); + + instance.enrollCard(requestObj, function (error, data, response) { + if(error) { + console.log('\nError : ' + error.message); + } + else if (data) { + console.log('\nData : ' + JSON.stringify(data)); + } + + console.log('\nResponse : ' + JSON.stringify(response)); + console.log('\nResponse Code of Enroll a card : ' + JSON.stringify(response['status'])); + + var status = response['status']; + write_log_audit(status); + callback(error, data, response); + }); + } + catch (error) { + console.log('\nException on calling the API : ' + error); + } +} + +function write_log_audit(status) { + var filename = path.basename(__filename).split(".")[0]; + console.log(`[Sample Code Testing] [${filename}] ${status}`); +} + +if (require.main === module) { + acp_api_example(function () { + console.log('\nEnrollCard end.'); + }); +} + +module.exports.acp_api_example = acp_api_example; \ No newline at end of file