Created
October 21, 2016 15:11
-
-
Save kstrauss/a565cd1661a712da544e74c071d56cca to your computer and use it in GitHub Desktop.
nsoftware example trying to sign a document. It doesn't seem to work either using the builtin provider or using the GnuPG_Provider provider.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -----BEGIN PGP PRIVATE KEY BLOCK----- | |
| Version: GnuPG v1.4.11 (MingW32) | |
| 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 | |
| MvOkoACjKyln | |
| =h7ae | |
| -----END PGP PRIVATE KEY BLOCK----- |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -----BEGIN PGP PUBLIC KEY BLOCK----- | |
| Version: GnuPG v1.4.11 (MingW32) | |
| mQENBFgKLY0BCADo95cLyH71EwTKR0ExNHSldu9As0hqH0lTmURIghWbPhQ1fmdV | |
| QiXb05FFz8uKCOkc5pLleESij8LkNzc+eEafc/yM+1nUF6COlRik/h2gajJciknG | |
| fWtzWaRj2MX4X2UhfG9+VmUXk+eHInnW8N3qDXg6KZKJm1Gjtasko+v0x/MsHr5S | |
| MCdRbFD8PKotT80QnDwN01cxmw7QULXTyKPa4KkDXmDebaJwEhUCxEzE+NhqWlxP | |
| KUyjqOMdfHG8pN9hbHl5LtjHqukuZCN/zW7XlNxPIorDpeT68hI3PDILHfF3bTbs | |
| rtjm2qa/rNXkfz/UmK7Z4CwuGLO2K7bIlQ1bABEBAAG0PVRlc3RHYXJiYWdlIChh | |
| IHRlbXBvcmFyeSBnYXJiYWdlIHRlc3Qga2V5KSA8Z2FyYmFnZUB0ZXN0LmNvbT6J | |
| AT4EEwECACgFAlgKLY0CGwMFCQA3XwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA | |
| AAoJEAmNwn9UUqNziQ0H/RjTbBfDlBvC2dIs/LH6IP1dWsbdE7BUyN3JhDHYKvJu | |
| YKISBpPlljMtsfAws5uVx9JulexBlHoS17gKpbhxjAuvZ5S0en8gAkAmRhXFxqyx | |
| r2VEpjrvPefw4eDz2oNdWCufXziieu9BJThntwi5eNDwEvUI/IMYS0qz5k8TPkeh | |
| QBYH9B+OXh7bab7KBik4ldnZMlcV5HrV3nvC3fGxAPbYAwE/6yS8/hJljKcY4I4m | |
| /BSGpoB4oLQnXiNCsbQcqc7oYrdMj/Nc9apSf0QMfjjNEDN23um6gbPkbpQcVVPW | |
| QtBTd4lp83jNHA3iDrbYcE1rQ7EBsUDzRsE9s0H3M265AQ0EWAotjQEIALW4uqLN | |
| dopTZludUq1o5+XKtDl5LssxLGlcuJRgvL5lSn4F30YTkbV1YXoUZYbteYDyRPFu | |
| /up2a7ZUEkCBOqTQSG2I853INcBbIJ+oPsgMCVeoVdWqT041PeqDEA2azNfQuUbN | |
| JvOcV/OOY4kHbci3hTKSI9r6OaBljfuGneBP1GheByFfvVDNxCj2deDYq39ayVs8 | |
| rX4Hb+eVQpA2PUJNqmDE2CYbGMOKOdvOJpGrMOythFdYkmzgSwr3uJcDKNkHiVV/ | |
| 1CgesOpb7FF4lB9sU3m3F4Zg5FP6rbQxfRfL4sUSVAI3G8+TSb2gYXpUs74trOyE | |
| JvPcC3WVhLnZTgMAEQEAAYkBJQQYAQIADwUCWAotjQIbDAUJADdfAAAKCRAJjcJ/ | |
| VFKjc90hB/9aN1MNjW0c06k2PH8IJSu4zPWNOQOWbZdk9sNgsiqxO2ZmM+EZuI+c | |
| IqIbdpl7sDNs+CjZBixbHRpftpGiCxTM+Z0luFaRlSg62+KbG9ykdLVCTxZbNAtg | |
| HXcxu1fH4Kr6Ope/pVzx7RH1KHJY6rAb1+zZI4rIcEt99KeUb07MWmMhctwJy3/W | |
| KPlqevmNDq/nImVgTj2Z+dK5U/YAjDFC9LDUr5Z67WRLxDU8sGBFaNCsKqY4bAzb | |
| cvU+e9hvrVlMj530U7aY4Te4XvG+6WK1GOP5XnnVmO0O1Qf6pkjjOoxOd7/cGsqr | |
| BXCwa81VwZHgC52Nr6kiMvOkoACjKyln | |
| =eXZT | |
| -----END PGP PUBLIC KEY BLOCK----- |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| void Main() | |
| { | |
| var GpgHome = @"c:\temp\gpgHome\"; | |
| var PgpProvider = Path.Combine(GpgHome,"GnuPG_Provider.dll"); | |
| var GpgPath = @"C:\userPrograms\gnuPGP\gpg.exe"; | |
| var Receiver = GetProfile(); | |
| String destFileName = "EnrollmentTestResponseHU.txt"; | |
| destFileName = DataFile; | |
| using (var inputStream = new MemoryStream(Encoding.UTF8.GetBytes( "SomeText that needs to be sent"))){ | |
| var gisbsender1 = new Gisbsender("someRTK") | |
| { | |
| LogDirectory = "/temp", | |
| PGPProvider = PgpProvider, | |
| DataFrom = "123", | |
| DataTo = Receiver.GisbReceiverId, | |
| URL = "http://requestb.in/utii4zut", | |
| EncryptData = true, | |
| SignData = true, | |
| GISBVersion = Receiver.GisbVersion, | |
| }; | |
| gisbsender1.Config("PGPProviderType=1"); | |
| gisbsender1.Config("PGPCombineSignAndEncrypt"); | |
| gisbsender1.ReceiptTo = gisbsender1.DataFrom; //A signed receipt was requested, but not provided. | |
| gisbsender1.ReceiptSecurity = String.Empty; | |
| gisbsender1.SetPGPParam("gpg-path", GpgPath); | |
| gisbsender1.SetPGPParam("homedir", GpgHome); // where to find the keys | |
| gisbsender1.SetPGPParam("userid","TestGarbage"); | |
| gisbsender1.SetPGPParam("passphrase","StupidIsAsStupidDoes"); | |
| gisbsender1.SetPGPParam("recipient-userid", Receiver.PgpFingerprint); //Receiver PUBLIC key | |
| if (!String.IsNullOrEmpty(Receiver.HttpsLoginId)) | |
| { | |
| gisbsender1.Config("AuthScheme=0"); //0 = Basic, for full list see help file | |
| gisbsender1.Config("User=" + Receiver.HttpsLoginId); | |
| gisbsender1.Config("Password=" + Receiver.HttpsLoginPassword); | |
| gisbsender1.Config("ContentType=application/octet-stream"); | |
| gisbsender1.Config("KeepAlive=true"); | |
| if (Receiver.DontFoldHeaders) | |
| { | |
| gisbsender1.Config("DontFoldHeaders=true"); | |
| } | |
| } | |
| gisbsender1.GISBData = new GISBData() | |
| { | |
| Name = destFileName, | |
| EDIType = "X12", | |
| InputStream = inputStream //our input stream | |
| }; | |
| //gisbsender1.OnSSLServerAuthentication += new Gisbsender.OnSSLServerAuthenticationHandler(gisbsender1_OnSSLServerAuthentication); | |
| gisbsender1.Post(); | |
| gisbsender1.ResponseContent.Dump(); | |
| } | |
| } | |
| // Define other methods and classes here | |
| public EdiProfile GetProfile() | |
| { | |
| return new EdiProfile() | |
| { | |
| SignPayload = true, | |
| GisbVersion = "1.6", | |
| PgpFingerprint = "D2D76FD7288450C329D988C5098DC27F5452A373", | |
| GisbReceiverId = "123456" | |
| }; | |
| } | |
| public class EdiProfile | |
| { | |
| public EdiProfile() | |
| { | |
| // set default | |
| QuoteBoundary = true; | |
| SignPayload = false; | |
| } | |
| public string GisbReceiverId { get; set; } | |
| public string Platform { get; set; } | |
| public Guid EdiPartnerId { get; set; } | |
| public string Name { get; set; } | |
| public string IsaInterchangeIdQualifier { get; set; } | |
| public string IsaInterchangeId { get; set; } | |
| // ApplicationReceiverCodeId - for those that are the same regardless of functional group | |
| public string FunctionalGroupId { get; set; } | |
| public char ElementSeparator { get; set; } | |
| public char SubElementSeparator { get; set; } | |
| public char SegmentTerminator { get; set; } | |
| public string Url { get; set; } | |
| public short Port { get; set; } | |
| public string PgpFingerprint { get; set; } | |
| public string HttpsLoginId { get; set; } | |
| public string HttpsLoginPassword { get; set; } | |
| public string EmailNAESBFailure { get; set; } | |
| public string EdiPartnerName { get; set; } | |
| public string GisbVersion { get; set; } | |
| public bool DontFoldHeaders { get; set; } | |
| /// <summary> | |
| /// In a multi-part form upload by the rfc of 822 you should have the boundary string quoted | |
| /// if there is a character that is not on the allowed list. Nsoftware puts an "=" character | |
| /// in the boundary string which is one of those not allowed. The default for this is true, | |
| /// as this is the safe mechanism but some partners require this to be false (specifically at | |
| /// the time of writing ameren, perhaps Comed & Mec but we are not sure with history) | |
| /// </summary> | |
| public bool QuoteBoundary { get; set; } | |
| /// <summary> | |
| /// Indicates whether the payload is required to be signed. The default is false. | |
| /// </summary> | |
| public bool SignPayload { get; set; } | |
| public string N1Id { get; set; } | |
| public static EdiProfile ReadEdiProfileJson(String Name, DirectoryInfo dirToSearch) | |
| { | |
| var allegedFile = Path.Combine(dirToSearch.FullName, String.Format("{0}_ediprofile.json", Name)); | |
| // not going to check to see if the path exists. It's dependent on the caller | |
| return JsonConvert.DeserializeObject<EdiProfile>(File.ReadAllText(allegedFile)); | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment