Skip to content

Commit af287b0

Browse files
authored
Merge pull request #66 from CyberSource/custom-password-fix
Added fix to account for custom password for the p12 file
2 parents 6fc8499 + 34d1b63 commit af287b0

File tree

10 files changed

+43
-22
lines changed

10 files changed

+43
-22
lines changed

CyberSource.nuspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package >
33
<metadata>
44
<id>CyberSource</id>
5-
<version>1.4.0</version>
5+
<version>1.4.5</version>
66
<title>CyberSource Corporation</title>
77
<authors>CyberSource Corporation</authors>
88
<owners>CyberSource Corporation</owners>

CyberSource/Base/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
//
3232
// You can specify all the values or you can default the Revision and Build Numbers
3333
// by using the '*' as shown below:
34-
[assembly: AssemblyVersion("1.4.4")]
35-
[assembly: AssemblyFileVersion("1.4.4")]
34+
[assembly: AssemblyVersion("1.4.5")]
35+
[assembly: AssemblyFileVersion("1.4.5")]

CyberSource/Client/CustomTextMessageEncoder.cs

+12-3
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,16 @@ public override Message ReadMessage(Stream stream, int maxSizeOfHeaders, string
6161
{
6262
var sr = new StreamReader(stream);
6363
var wireResponse = sr.ReadToEnd();
64+
sr.Close();
6465

6566
// Fix for Xml external entity injection violation in fortify report
6667
XmlReaderSettings settings = new XmlReaderSettings();
6768
settings.DtdProcessing = DtdProcessing.Prohibit;
6869
settings.XmlResolver = null;
6970

7071
XmlDocument doc = new XmlDocument();
71-
XmlReader reader = XmlReader.Create(new StringReader(wireResponse), settings);
72+
StringReader stringReader = new StringReader(wireResponse);
73+
XmlReader reader = XmlReader.Create(stringReader, settings);
7274
doc.Load(reader);
7375
//We need to get rid of the security header because it is not signed by the web service.
7476
//The whole reason for the custom Encoder is to do this. the client rejected the unsigned header.
@@ -79,8 +81,15 @@ public override Message ReadMessage(Stream stream, int maxSizeOfHeaders, string
7981
{
8082
n.DeleteSelf();
8183
}
82-
reader = XmlReader.Create(new StringReader(doc.InnerXml), settings);
83-
return Message.CreateMessage(reader, maxSizeOfHeaders, MessageVersion.Soap11);
84+
StringReader stringReaderInnerXml = new StringReader(doc.InnerXml);
85+
reader = XmlReader.Create(stringReaderInnerXml, settings);
86+
Message returnMessage = Message.CreateMessage(reader, maxSizeOfHeaders, MessageVersion.Soap11);
87+
88+
stringReader.Close();
89+
stringReaderInnerXml.Close();
90+
reader.Close();
91+
92+
return returnMessage;
8493
}
8594

8695
public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)

CyberSource/Client/NVPClient.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public static Hashtable RunTransaction(
6565

6666
//Setup endpoint Address with dns identity
6767
AddressHeaderCollection headers = new AddressHeaderCollection();
68-
EndpointAddress endpointAddress = new EndpointAddress(new Uri(config.EffectiveServerURL), EndpointIdentity.CreateDnsIdentity(config.EffectivePassword), headers);
68+
EndpointAddress endpointAddress = new EndpointAddress(new Uri(config.EffectiveServerURL), EndpointIdentity.CreateDnsIdentity(config.MerchantID), headers);
6969

7070
//Get instance of service
7171
using (proc = new NVPTransactionProcessorClient(currentBinding, endpointAddress))
@@ -272,6 +272,8 @@ private static Hashtable String2Hash(string src)
272272
}
273273
}
274274

275+
reader.Close();
276+
275277
return (dest);
276278
}
277279

CyberSource/Client/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
//
3232
// You can specify all the values or you can default the Revision and Build Numbers
3333
// by using the '*' as shown below:
34-
[assembly: AssemblyVersion("1.4.4")]
35-
[assembly: AssemblyFileVersion("1.4.4")]
34+
[assembly: AssemblyVersion("1.4.5")]
35+
[assembly: AssemblyFileVersion("1.4.5")]

CyberSource/Client/SoapClient.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public static ReplyMessage RunTransaction(
6666

6767
//Setup endpoint Address with dns identity
6868
AddressHeaderCollection headers = new AddressHeaderCollection();
69-
EndpointAddress endpointAddress = new EndpointAddress(new Uri(config.EffectiveServerURL), EndpointIdentity.CreateDnsIdentity(config.EffectivePassword), headers);
69+
EndpointAddress endpointAddress = new EndpointAddress(new Uri(config.EffectiveServerURL), EndpointIdentity.CreateDnsIdentity(config.MerchantID), headers);
7070

7171
//Get instance of service
7272
using (proc = new TransactionProcessorClient(currentBinding, endpointAddress))

CyberSource/Client/XmlClient.cs

+14-4
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@ static XmlClient()
3434
XmlReaderSettings settings = new XmlReaderSettings();
3535
settings.DtdProcessing = DtdProcessing.Prohibit;
3636
settings.XmlResolver = null;
37-
XmlReader reader = XmlReader.Create(new StringReader(SOAP_ENVELOPE), settings);
37+
StringReader stringReader = new StringReader(SOAP_ENVELOPE);
38+
XmlReader reader = XmlReader.Create(stringReader, settings);
3839

3940
mSoapEnvelope.Load(reader);
41+
42+
stringReader.Close();
43+
reader.Close();
4044
}
4145

4246
private XmlClient() { }
@@ -332,7 +336,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
332336
XmlReaderSettings settings = new XmlReaderSettings();
333337
settings.DtdProcessing = DtdProcessing.Prohibit;
334338
settings.XmlResolver = null;
335-
XmlReader reader = XmlReader.Create(new StringReader(keyInfoTags), settings);
339+
StringReader stringReader = new StringReader(keyInfoTags);
340+
XmlReader reader = XmlReader.Create(stringReader, settings);
336341

337342
//keyInfo.LoadXml("<root xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" ><ds:KeyInfo><SecurityTokenReference xmlns=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"><wsse:Reference URI=\"#X509Token\" ValueType=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3\"/></SecurityTokenReference></ds:KeyInfo></root>");
338343
keyInfo.Load(reader);
@@ -341,7 +346,8 @@ private static void SignDocument(X509Certificate2 cert, XmlDocument doc)
341346
//Add The Base64 representation of the X509 cert to BinarySecurityToken Node
342347
//X509SecurityToken token = new X509SecurityToken(cert);
343348
doc.DocumentElement.FirstChild.LastChild.InnerText = Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.None);
344-
349+
stringReader.Close();
350+
reader.Close();
345351
}
346352

347353
private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
@@ -359,7 +365,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
359365
XmlReaderSettings settings = new XmlReaderSettings();
360366
settings.DtdProcessing = DtdProcessing.Prohibit;
361367
settings.XmlResolver = null;
362-
XmlReader reader = XmlReader.Create(new StringReader(encData), settings);
368+
StringReader stringReader = new StringReader(encData);
369+
XmlReader reader = XmlReader.Create(stringReader, settings);
363370

364371
encryptedDataTags.Load(reader);
365372
doc.DocumentElement.FirstChild.FirstChild.PrependChild(doc.ImportNode(encryptedDataTags.FirstChild.FirstChild, true));
@@ -392,6 +399,8 @@ private static void encryptDocument(X509Certificate2 cert, XmlDocument doc)
392399
// Put encypted body inside ciphervalue tag
393400
doc.GetElementsByTagName("SOAP-ENV:Body")[0].InnerXml = encryptedSoapBody;
394401
doc.GetElementsByTagName("xenc:CipherValue")[1].InnerText = encryptedPayload;
402+
stringReader.Close();
403+
reader.Close();
395404
}
396405

397406
/// <summary>
@@ -492,6 +501,7 @@ private static XmlDocument ReadXml(WebResponse webResponse)
492501
settings.XmlResolver = null;
493502
XmlReader reader = XmlReader.Create(stream, settings);
494503
xmlDoc.Load(reader);
504+
reader.Close();
495505
return (xmlDoc);
496506
}
497507
finally

CyberSourceSamples/src/nvp/NVPSample.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ static void Main(string[] args)
4040
request.Add( "billTo_ipAddress", "10.7.111.111" );
4141
request.Add( "card_accountNumber", "4111111111111111" );
4242
request.Add( "card_expirationMonth", "12" );
43-
request.Add( "card_expirationYear", "2020" );
43+
request.Add( "card_expirationYear", "2030" );
4444
request.Add( "purchaseTotals_currency", "USD" );
4545

4646
// there are two items in this sample

CyberSourceSamples/src/soap/SoapSample.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ public RequestMessage authRequest()
393393
Card card = new Card();
394394
card.accountNumber = "4111111111111111";
395395
card.expirationMonth = "12";
396-
card.expirationYear = "2020";
396+
card.expirationYear = "2030";
397397
request.card = card;
398398

399399
PurchaseTotals purchaseTotals = new PurchaseTotals();
@@ -491,7 +491,7 @@ public RequestMessage emvAuthRequest()
491491
Card card = new Card();
492492
card.accountNumber = "4111111111111111";
493493
card.expirationMonth = "12";
494-
card.expirationYear = "2020";
494+
card.expirationYear = "2030";
495495
request.card = card;
496496

497497
PurchaseTotals purchaseTotals = new PurchaseTotals();
@@ -663,7 +663,7 @@ public RequestMessage refundRequest()
663663
Card card = new Card();
664664
card.accountNumber = "4111111111111111";
665665
card.expirationMonth = "12";
666-
card.expirationYear = "2020";
666+
card.expirationYear = "2030";
667667
request.card = card;
668668

669669

@@ -739,7 +739,7 @@ public RequestMessage androidPayAuthRequest()
739739
Card card = new Card();
740740
card.accountNumber = "4111111111111111";
741741
card.expirationMonth = "12";
742-
card.expirationYear = "2020";
742+
card.expirationYear = "2030";
743743
request.card = card;
744744

745745
PurchaseTotals purchaseTotals = new PurchaseTotals();
@@ -807,7 +807,7 @@ public RequestMessage applePayAuthRequest()
807807
Card card = new Card();
808808
card.accountNumber = "4111111111111111";
809809
card.expirationMonth = "12";
810-
card.expirationYear = "2020";
810+
card.expirationYear = "2030";
811811
request.card = card;
812812

813813
PurchaseTotals purchaseTotals = new PurchaseTotals();
@@ -874,7 +874,7 @@ public RequestMessage saleRequest()
874874
Card card = new Card();
875875
card.accountNumber = "4111111111111111";
876876
card.expirationMonth = "12";
877-
card.expirationYear = "2020";
877+
card.expirationYear = "2030";
878878
request.card = card;
879879

880880
PurchaseTotals purchaseTotals = new PurchaseTotals();

sample.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<card>
2626
<accountNumber>4111111111111111</accountNumber>
2727
<expirationMonth>12</expirationMonth>
28-
<expirationYear>2020</expirationYear>
28+
<expirationYear>2030</expirationYear>
2929
</card>
3030
<ccAuthService run="true">
3131
</ccAuthService>

0 commit comments

Comments
 (0)