zatca 0.1.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -2
- data/bin/console +0 -0
- data/bin/setup +0 -0
- data/einvoicing-sdk/Apps/fatoora +12 -0
- data/einvoicing-sdk/Apps/fatoora.bat +16 -0
- data/einvoicing-sdk/Apps/global.json +1 -0
- data/einvoicing-sdk/Apps/jq.exe +0 -0
- data/einvoicing-sdk/Apps/zatca-einvoicing-sdk-238-R3.2.7.jar +0 -0
- data/einvoicing-sdk/Configuration/config.json +11 -0
- data/einvoicing-sdk/Configuration/defaults.json +11 -0
- data/einvoicing-sdk/Configuration/jq.exe +0 -0
- data/einvoicing-sdk/Configuration/usage.txt +16 -0
- data/einvoicing-sdk/Data/Certificates/cert.pem +1 -0
- data/einvoicing-sdk/Data/Certificates/ec-secp256k1-priv-key.pem +1 -0
- data/einvoicing-sdk/Data/Input/csr-config-example-AR-VAT-Group.properties +9 -0
- data/einvoicing-sdk/Data/Input/csr-config-example-AR.properties +9 -0
- data/einvoicing-sdk/Data/Input/csr-config-example-EN-VAT-group.properties +9 -0
- data/einvoicing-sdk/Data/Input/csr-config-example-EN.properties +9 -0
- data/einvoicing-sdk/Data/Input/csr-config-template.properties +9 -0
- data/einvoicing-sdk/Data/PIH/pih.txt +1 -0
- data/einvoicing-sdk/Data/Rules/schematrons/20210819_ZATCA_E-invoice_Validation_Rules.xsl +2844 -0
- data/einvoicing-sdk/Data/Rules/schematrons/CEN-EN16931-UBL.xsl +1973 -0
- data/einvoicing-sdk/Data/Samples/PDF-A3/Simplified Debit Note.pdf +0 -0
- data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Credit Note.pdf +0 -0
- data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Debit Note.pdf +0 -0
- data/einvoicing-sdk/Data/Samples/PDF-A3/Standard Invoice.pdf +0 -0
- data/einvoicing-sdk/Data/Samples/PDF-A3/Tax_Invoice_USD.pdf +0 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Credit/Simplified_Credit_Note.xml +300 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Credit/Simplified_Credit_Note_Error.xml +225 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Debit/Simplified_Debit_Note.xml +211 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Debit/Simplified_Debit_Note_Error.xml +226 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Additional_Simplified_Invoices/Out_Of_Scope_Simplified_Invoice.xml +207 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Additional_Simplified_Invoices/Simplified_Invoice_USD.xml +246 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Simplified_Invoice.xml +246 -0
- data/einvoicing-sdk/Data/Samples/Simplified/Invoice/Simplified_Invoice_Error.xml +228 -0
- data/einvoicing-sdk/Data/Samples/Standard/Credit/Standard_Credit_Note.xml +227 -0
- data/einvoicing-sdk/Data/Samples/Standard/Credit/Standard_Credit_Note_Error.xml +224 -0
- data/einvoicing-sdk/Data/Samples/Standard/Debit/Standard_Debit_Note.xml +227 -0
- data/einvoicing-sdk/Data/Samples/Standard/Debit/Standard_Debit_Note_Error.xml +226 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Exempt_Standard_Invoice.xml +227 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Standard_Invoice_USD.xml +227 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Additional_Standard_Invoices/Zero_Rate_Standard_Invoice.xml +227 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Sample Invoice[Advance Payements] - 1.xml +294 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Sample Invoice[Advance Payements] - 2.xml +432 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Standard_Invoice.xml +222 -0
- data/einvoicing-sdk/Data/Samples/Standard/Invoice/Standard_Invoice_Error.xml +228 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/CCTS_CCT_SchemaModule-2.1.xsd +731 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonAggregateComponents-2.1.xsd +44365 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonBasicComponents-2.1.xsd +5389 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonExtensionComponents-2.1.xsd +223 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CommonSignatureComponents-2.1.xsd +101 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-CoreComponentParameters-2.1.xsd +63 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-ExtensionContentDataType-2.1.xsd +89 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-QualifiedDataTypes-2.1.xsd +69 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-SignatureAggregateComponents-2.1.xsd +138 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-SignatureBasicComponents-2.1.xsd +78 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-UnqualifiedDataTypes-2.1.xsd +553 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-XAdESv132-2.1.xsd +476 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-XAdESv141-2.1.xsd +25 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/common/UBL-xmldsig-core-schema-2.1.xsd +330 -0
- data/einvoicing-sdk/Data/Schemas/xsds/UBL2.1/xsd/maindoc/UBL-Invoice-2.1.xsd +1002 -0
- data/einvoicing-sdk/Dockerfile +26 -0
- data/einvoicing-sdk/LICENSE.txt +56 -0
- data/einvoicing-sdk/Lib/.Net/DLL/BouncyCastle.Crypto.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Core.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Text.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.Util.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/IKVM.OpenJDK.XML.API.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/IKVM.Runtime.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.dll.config +43 -0
- data/einvoicing-sdk/Lib/.Net/DLL/SDKNETFrameWorkLib.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/System.Net.Http.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-api-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/DLL/saxon-he-api-10.8.xml +11759 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/3f204b7a-faba-42d8-8288-8b6fe516555c.vsidx +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/f95b6f91-c110-4b7a-bb49-3fc6bde85b13.vsidx +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/read.lock +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/v17/.suo +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/App.config +14 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/BouncyCastle.Crypto.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/CSRGeneratorOpenSSL.cs +58 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Core.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Text.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.Util.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.OpenJDK.XML.API.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/IKVM.Runtime.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Program.cs +194 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Properties/AssemblyInfo.cs +36 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/Readme.txt +8 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.dll.config +43 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameWorkLib.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.csproj +120 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.exe +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.exe.config +20 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/SDKNETFrameworkTest.sln +25 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/BouncyCastle.Crypto.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/certificate.txt +1 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/pih.txt +1 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/Data/privateKey.txt +1 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Core.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Text.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.Util.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.OpenJDK.XML.API.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/IKVM.Runtime.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.dll.config +43 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameWorkLib.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.exe +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.exe.config +20 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/SDKNETFrameworkTest.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/System.Net.Http.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-api-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/bin/Debug/saxon-he-api-10.8.xml +11759 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs +4 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/DesignTimeResolveAssemblyReferences.cache +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.AssemblyReference.cache +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.CopyComplete +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.CoreCompileInputs.cache +1 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.FileListAbsolute.txt +22 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.csproj.SuggestedBindingRedirects.cache +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.exe +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/obj/Debug/SDKNETFrameworkTest.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-api-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/saxon-he-api-10.8.xml +11759 -0
- data/einvoicing-sdk/Lib/.Net/Test/BouncyCastle.Crypto.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Core.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Text.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.Util.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/IKVM.OpenJDK.XML.API.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/IKVM.Runtime.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.dll.config +43 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameWorkLib.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.exe +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.exe.config +20 -0
- data/einvoicing-sdk/Lib/.Net/Test/SDKNETFrameworkTest.pdb +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/saxon-he-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/saxon-he-api-10.8.dll +0 -0
- data/einvoicing-sdk/Lib/.Net/Test/saxon-he-api-10.8.xml +11759 -0
- data/einvoicing-sdk/README.md +15 -0
- data/einvoicing-sdk/Readme/readme.docx +0 -0
- data/einvoicing-sdk/Readme/readme.md +674 -0
- data/einvoicing-sdk/Readme/readme.pdf +0 -0
- data/einvoicing-sdk/Readme/~$readme.docx +0 -0
- data/einvoicing-sdk/docker-compose.yml +12 -0
- data/einvoicing-sdk/install.bat +74 -0
- data/einvoicing-sdk/install.sh +74 -0
- data/lib/zatca/client.rb +173 -0
- data/lib/zatca/hacks.rb +45 -0
- data/lib/zatca/hashing.rb +18 -0
- data/lib/zatca/qr_code_extractor.rb +31 -0
- data/lib/zatca/qr_code_generator.rb +9 -2
- data/lib/zatca/signing/certificate.rb +78 -0
- data/lib/zatca/signing/csr.rb +220 -0
- data/lib/zatca/signing/ecdsa.rb +59 -0
- data/lib/zatca/tag.rb +18 -8
- data/lib/zatca/tags.rb +5 -1
- data/lib/zatca/tags_schema.rb +5 -5
- data/lib/zatca/types.rb +7 -0
- data/lib/zatca/ubl/base_component.rb +142 -0
- data/lib/zatca/ubl/builder.rb +166 -0
- data/lib/zatca/ubl/common_aggregate_components/allowance_charge.rb +64 -0
- data/lib/zatca/ubl/common_aggregate_components/classified_tax_category.rb +25 -0
- data/lib/zatca/ubl/common_aggregate_components/delivery.rb +27 -0
- data/lib/zatca/ubl/common_aggregate_components/invoice_line.rb +63 -0
- data/lib/zatca/ubl/common_aggregate_components/item.rb +21 -0
- data/lib/zatca/ubl/common_aggregate_components/legal_monetary_total.rb +59 -0
- data/lib/zatca/ubl/common_aggregate_components/party.rb +28 -0
- data/lib/zatca/ubl/common_aggregate_components/party_identification.rb +25 -0
- data/lib/zatca/ubl/common_aggregate_components/party_legal_entity.rb +19 -0
- data/lib/zatca/ubl/common_aggregate_components/party_tax_scheme.rb +30 -0
- data/lib/zatca/ubl/common_aggregate_components/postal_address.rb +59 -0
- data/lib/zatca/ubl/common_aggregate_components/price.rb +20 -0
- data/lib/zatca/ubl/common_aggregate_components/tax_category.rb +56 -0
- data/lib/zatca/ubl/common_aggregate_components/tax_total.rb +58 -0
- data/lib/zatca/ubl/common_aggregate_components.rb +2 -0
- data/lib/zatca/ubl/invoice.rb +481 -0
- data/lib/zatca/ubl/invoice_subtype_builder.rb +50 -0
- data/lib/zatca/ubl/signing/cert.rb +48 -0
- data/lib/zatca/ubl/signing/invoice_signed_data_reference.rb +44 -0
- data/lib/zatca/ubl/signing/key_info.rb +25 -0
- data/lib/zatca/ubl/signing/object.rb +20 -0
- data/lib/zatca/ubl/signing/qualifying_properties.rb +27 -0
- data/lib/zatca/ubl/signing/signature.rb +50 -0
- data/lib/zatca/ubl/signing/signature_information.rb +19 -0
- data/lib/zatca/ubl/signing/signature_properties_reference.rb +26 -0
- data/lib/zatca/ubl/signing/signed_info.rb +21 -0
- data/lib/zatca/ubl/signing/signed_properties.rb +81 -0
- data/lib/zatca/ubl/signing/signed_signature_properties.rb +23 -0
- data/lib/zatca/ubl/signing/ubl_document_signatures.rb +25 -0
- data/lib/zatca/ubl/signing/ubl_extension.rb +22 -0
- data/lib/zatca/ubl/signing/ubl_extensions.rb +17 -0
- data/lib/zatca/ubl/signing.rb +2 -0
- data/lib/zatca/ubl.rb +2 -0
- data/lib/zatca/version.rb +1 -1
- data/lib/zatca.rb +27 -3
- data/zatca.gemspec +52 -0
- metadata +318 -10
- data/Gemfile.lock +0 -100
Binary file
|
Binary file
|
data/einvoicing-sdk/Lib/.Net/SDKNETFrameworkTest/.vs/SDKNETFrameworkTest/FileContentIndex/read.lock
ADDED
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<configuration>
|
3
|
+
<startup>
|
4
|
+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
5
|
+
</startup>
|
6
|
+
<runtime>
|
7
|
+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
8
|
+
<dependentAssembly>
|
9
|
+
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
10
|
+
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
11
|
+
</dependentAssembly>
|
12
|
+
</assemblyBinding>
|
13
|
+
</runtime>
|
14
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,58 @@
|
|
1
|
+
using Microsoft.VisualBasic;
|
2
|
+
using SDKNETFrameWorkLib.GeneralLogic;
|
3
|
+
using System;
|
4
|
+
using System.Collections.Generic;
|
5
|
+
using System.Diagnostics;
|
6
|
+
using System.IO;
|
7
|
+
using System.Linq;
|
8
|
+
using System.Text;
|
9
|
+
using System.Threading;
|
10
|
+
using System.Threading.Tasks;
|
11
|
+
|
12
|
+
namespace SDKNETFrameworkTest
|
13
|
+
{
|
14
|
+
public class CSRGeneratorOpenSSL
|
15
|
+
{
|
16
|
+
public void ExecuteCommandSync(object command)
|
17
|
+
{
|
18
|
+
try
|
19
|
+
{
|
20
|
+
// create the ProcessStartInfo using "cmd" as the program to be run,
|
21
|
+
// and "/c " as the parameters.
|
22
|
+
// Incidentally, /c tells cmd that we want it to execute the command that follows,
|
23
|
+
// and then exit.
|
24
|
+
System.Diagnostics.ProcessStartInfo procStartInfo =
|
25
|
+
new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
|
26
|
+
|
27
|
+
// The following commands are needed to redirect the standard output.
|
28
|
+
// This means that it will be redirected to the Process.StandardOutput StreamReader.
|
29
|
+
procStartInfo.RedirectStandardOutput = true;
|
30
|
+
procStartInfo.UseShellExecute = false;
|
31
|
+
// Do not create the black window.
|
32
|
+
procStartInfo.CreateNoWindow = true;
|
33
|
+
// Now we create a process, assign its ProcessStartInfo and start it
|
34
|
+
System.Diagnostics.Process proc = new System.Diagnostics.Process();
|
35
|
+
proc.StartInfo = procStartInfo;
|
36
|
+
proc.Start();
|
37
|
+
// Get the output into a string
|
38
|
+
string result = proc.StandardOutput.ReadToEnd();
|
39
|
+
// Display the command output.
|
40
|
+
Console.WriteLine(result);
|
41
|
+
}
|
42
|
+
catch (Exception objException)
|
43
|
+
{
|
44
|
+
Console.WriteLine(objException.InnerException);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
public void GenerateCSRUsingOpenSSLComand(ref string errorMessage)
|
48
|
+
{
|
49
|
+
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
|
50
|
+
var directory = System.IO.Path.GetDirectoryName(path);
|
51
|
+
ExecuteCommandSync(@"openssl ecparam -name secp256k1 -genkey -noout -out " + directory + @"\generatedPrivateKey.pem");
|
52
|
+
Thread.Sleep(1000);
|
53
|
+
ExecuteCommandSync(@"openssl ec -in " + directory + @"\generatedPrivateKey.pem -pubout > " + directory + @"\generatedPublicKey.pem");
|
54
|
+
Thread.Sleep(1000);
|
55
|
+
ExecuteCommandSync(@"openssl req -new -sha256 -key " + directory + @"\generatedPrivateKey.pem -extensions v3_req -config " + directory + @"\config.cnf -out " + directory + @"\generatedCSR.csr");
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,194 @@
|
|
1
|
+
using System;
|
2
|
+
using System.Collections.Generic;
|
3
|
+
using System.Diagnostics;
|
4
|
+
using System.IO;
|
5
|
+
using System.Linq;
|
6
|
+
using System.Text;
|
7
|
+
using System.Threading.Tasks;
|
8
|
+
using SDKNETFrameWorkLib;
|
9
|
+
using SDKNETFrameWorkLib.GeneralLogic;
|
10
|
+
namespace SDKNETFrameworkTest
|
11
|
+
{
|
12
|
+
class Program
|
13
|
+
{
|
14
|
+
static int selectedOption = 0;
|
15
|
+
static void Main(string[] args)
|
16
|
+
{
|
17
|
+
var _IHashingValidator = new SDKNETFrameWorkLib.BLL.HashingValidator();
|
18
|
+
var _IQRValidator = new SDKNETFrameWorkLib.BLL.QRValidator();
|
19
|
+
var _IEInvoiceValidator = new SDKNETFrameWorkLib.BLL.EInvoiceValidator();
|
20
|
+
var _IEInvoiceSigningLogic = new SDKNETFrameWorkLib.BLL.EInvoiceSigningLogic();
|
21
|
+
|
22
|
+
|
23
|
+
string privateKeyContent = "MHQCAQEEIDyLDaWIn/1/g3PGLrwupV4nTiiLKM59UEqUch1vDfhpoAcGBSuBBAAKoUQDQgAEYYMMoOaFYAhMO/steotfZyavr6p11SSlwsK9azmsLY7b1b+FLhqMArhB2dqHKboxqKNfvkKDePhpqjui5hcn0Q==";//
|
24
|
+
string certificateContent = "MIID6jCCA5CgAwIBAgITbwAAfsboAdNVNKd+1wABAAB+xjAKBggqhkjOPQQDAjBjMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRwwGgYDVQQDExNUU1pFSU5WT0lDRS1TdWJDQS0xMB4XDTIyMDgxNjE0MjU0OFoXDTI0MDgxNTE0MjU0OFowTjELMAkGA1UEBhMCU0ExEzARBgNVBAoTCjMxMDIzMzM3NDYxDDAKBgNVBAsTA1RTVDEcMBoGA1UEAxMTVFNULTMxMDIzMzM3NDYwMDAwMzBWMBAGByqGSM49AgEGBSuBBAAKA0IABGGDDKDmhWAITDv7LXqLX2cmr6+qddUkpcLCvWs5rC2O29W/hS4ajAK4Qdnahym6MaijX75Cg3j4aao7ouYXJ9GjggI5MIICNTCBmgYDVR0RBIGSMIGPpIGMMIGJMTswOQYDVQQEDDIxLVRTVHwyLVRTVHwzLTBiZTk2ZTI3LWI5MTgtNDliYy05N2RiLTMzOWY1OWMyMzA0ZDEfMB0GCgmSJomT8ixkAQEMDzMxMDIzMzM3NDYwMDAwMzENMAsGA1UEDAwEMTEwMDEMMAoGA1UEGgwDVFNUMQwwCgYDVQQPDANUU1QwHQYDVR0OBBYEFDuWYlOzWpFN3no1WtyNktQdrA8JMB8GA1UdIwQYMBaAFHZgjPsGoKxnVzWdz5qspyuZNbUvME4GA1UdHwRHMEUwQ6BBoD+GPWh0dHA6Ly90c3RjcmwuemF0Y2EuZ292LnNhL0NlcnRFbnJvbGwvVFNaRUlOVk9JQ0UtU3ViQ0EtMS5jcmwwga0GCCsGAQUFBwEBBIGgMIGdMG4GCCsGAQUFBzABhmJodHRwOi8vdHN0Y3JsLnphdGNhLmdvdi5zYS9DZXJ0RW5yb2xsL1RTWkVpbnZvaWNlU0NBMS5leHRnYXp0Lmdvdi5sb2NhbF9UU1pFSU5WT0lDRS1TdWJDQS0xKDEpLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3RzdGNybC56YXRjYS5nb3Yuc2Evb2NzcDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwMwCgYIKoZIzj0EAwIDSAAwRQIhAMWDOI67/kAqLSDMGeUDUettoh+1dRGNHppri9d7y02vAiAtfnOLHuJBlO8QqNxXOdeQZphNYai0DDzQXmESb+6FZA==";
|
25
|
+
//string privateKeyContent = "MIGNAgEAMBAGByqGSM49AgEGBSuBBAAKBHYwdAIBAQQgBC/V+e1bYCyQ2RjgkC0VnhGOEn9aYMlUNC+x/Bxqh1ugBwYFK4EEAAqhRANCAASxorBRZSPU9SBYmsWY1ORtSLCEskbVJQuvKp2EThxqnyrZ4d48VAAKIh706QUzUkb/KsGE58vA9AeNVEE/Vn1X";
|
26
|
+
//string certificateContent = "TUlJRUxqQ0NBOVNnQXdJQkFnSVRGd0FBQUtCeHozbERXb2dXTlFBQkFBQUFvREFLQmdncWhrak9QUVFEQWpCaU1SVXdFd1lLQ1pJbWlaUHlMR1FCR1JZRmJHOWpZV3d4RXpBUkJnb0praWFKay9Jc1pBRVpGZ05uYjNZeEZ6QVZCZ29Ka2lhSmsvSXNaQUVaRmdkbGVIUm5ZWHAwTVJzd0dRWURWUVFERXhKUVVscEZTVTVXVDBsRFJWTkRRVEV0UTBFd0hoY05Nakl3T0RNd01EZ3hOREl3V2hjTk1qY3dPREk1TURneE5ESXdXakJTTVFzd0NRWURWUVFHRXdKVFFURVdNQlFHQTFVRUNoTU5RMmxuWVd4aGFDQkhjbTkxY0RFV01CUUdBMVVFQ3hNTlNtVmtaR0ZvSUVKeVlXNWphREVUTUJFR0ExVUVBeE1LTVRNd0xqRXVNVEF1TkRCV01CQUdCeXFHU000OUFnRUdCU3VCQkFBS0EwSUFCTEdpc0ZGbEk5VDFJRmlheFpqVTVHMUlzSVN5UnRVbEM2OHFuWVJPSEdxZkt0bmgzanhVQUFvaUh2VHBCVE5TUnY4cXdZVG55OEQwQjQxVVFUOVdmVmVqZ2dKNk1JSUNkakNCb2dZRFZSMFJCSUdhTUlHWHBJR1VNSUdSTVM0d0xBWURWUVFFRENVeExVaDFZWGRsYVh3eUxVVTVNREF3ZkRNdE1qRXdNak13TVRBeU9ERXdUVE13TURJNE1SOHdIUVlLQ1pJbWlaUHlMR1FCQVF3UE16QXdNVFV5TnpneE16QXdNREF6TVEwd0N3WURWUVFNREFReE1UQXdNUmN3RlFZRFZRUWFEQTVCYzJnZ1UyaGhjbUZtYVhsaGFERVdNQlFHQTFVRUR3d05VR2hoY20xaElITmxZM1J2Y2pBZEJnTlZIUTRFRmdRVWdQSXMyT00zbzdROWdmMkUvcVhYWVBra3d5VXdId1lEVlIwakJCZ3dGb0FVY3BQUkRtdjZKRnNUaGVyQkZmTzRGZnNiQlkwd1RnWURWUjBmQkVjd1JUQkRvRUdnUDRZOWFIUjBjRG92TDJOeWJERXVlbUYwWTJFdVoyOTJMbk5oTDBObGNuUkZibkp2Ykd3dlVGSmFSVWxPVms5SlEwVlRRMEV4TFVOQktERXBMbU55YkRDQnFBWUlLd1lCQlFVSEFRRUVnWnN3Z1pnd2F3WUlLd1lCQlFVSE1BS0dYMmgwZEhBNkx5OWhhV0V4TG5waGRHTmhMbWR2ZGk1ellTOURaWEowUlc1eWIyeHNMMUJTV2tWcGJuWnZhV05sVTBOQk1TNWxlSFJuWVhwMExtZHZkaTVzYjJOaGJGOVFVbHBGU1U1V1QwbERSVk5EUVRFdFEwRW9NU2t1WTNKME1Da0dDQ3NHQVFVRkJ6QUJoaDFvZEhSd09pOHZZM0pzTVM1NllYUmpZUzVuYjNZdWMyRXZiMk56Y0RBT0JnTlZIUThCQWY4RUJBTUNCNEF3UEFZSkt3WUJCQUdDTnhVSEJDOHdMUVlsS3dZQkJBR0NOeFVJZ1lhb0hZVFEreEtHN1owa2g4NzdHZFBBVldhSCtxVmxoZG1FUGdJQlpBSUJEakFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQXdZSUt3WUJCUVVIQXdJd0p3WUpLd1lCQkFHQ054VUtCQm93R0RBS0JnZ3JCZ0VGQlFjREF6QUtCZ2dyQmdFRkJRY0RBakFLQmdncWhrak9QUVFEQWdOSUFEQkZBaUVBaGdnQTA5aUtzYXB6N0RCSW13RGNrazJMbGpnZHIyZlZsdEIwOTBlbk1GOENJQlRYdnZubEFTNEF5czJkcm5CemlLTWN0Q1RzN3k2U1JNZW5zWmFLM3J6Rg==";
|
27
|
+
string pihContent = "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==";
|
28
|
+
//=============================================================
|
29
|
+
Console.WriteLine("********** Welcome to ZATCA E-Invoice .NET SDK 1.0.0 **********");
|
30
|
+
Console.WriteLine("Sample for private key : ");
|
31
|
+
Console.WriteLine("MHQCAQEEIDyLDaWIn/1/g3PGLrwupV4nTiiLKM59UEqUch1vDfhpoAcGBSuBBAAKoUQDQgAEYYMMoOaFYAhMO/steotfZyavr6p11SSlwsK9azmsLY7b1b+FLhqMArhB2dqHKboxqKNfvkKDePhpqjui5hcn0Q==");
|
32
|
+
Console.WriteLine("---------------------------------------------------------------------");
|
33
|
+
Console.WriteLine("Sample for certificate : ");
|
34
|
+
Console.WriteLine("MIID6jCCA5CgAwIBAgITbwAAfsboAdNVNKd+1wABAAB+xjAKBggqhkjOPQQDAjBjMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRwwGgYDVQQDExNUU1pFSU5WT0lDRS1TdWJDQS0xMB4XDTIyMDgxNjE0MjU0OFoXDTI0MDgxNTE0MjU0OFowTjELMAkGA1UEBhMCU0ExEzARBgNVBAoTCjMxMDIzMzM3NDYxDDAKBgNVBAsTA1RTVDEcMBoGA1UEAxMTVFNULTMxMDIzMzM3NDYwMDAwMzBWMBAGByqGSM49AgEGBSuBBAAKA0IABGGDDKDmhWAITDv7LXqLX2cmr6+qddUkpcLCvWs5rC2O29W/hS4ajAK4Qdnahym6MaijX75Cg3j4aao7ouYXJ9GjggI5MIICNTCBmgYDVR0RBIGSMIGPpIGMMIGJMTswOQYDVQQEDDIxLVRTVHwyLVRTVHwzLTBiZTk2ZTI3LWI5MTgtNDliYy05N2RiLTMzOWY1OWMyMzA0ZDEfMB0GCgmSJomT8ixkAQEMDzMxMDIzMzM3NDYwMDAwMzENMAsGA1UEDAwEMTEwMDEMMAoGA1UEGgwDVFNUMQwwCgYDVQQPDANUU1QwHQYDVR0OBBYEFDuWYlOzWpFN3no1WtyNktQdrA8JMB8GA1UdIwQYMBaAFHZgjPsGoKxnVzWdz5qspyuZNbUvME4GA1UdHwRHMEUwQ6BBoD+GPWh0dHA6Ly90c3RjcmwuemF0Y2EuZ292LnNhL0NlcnRFbnJvbGwvVFNaRUlOVk9JQ0UtU3ViQ0EtMS5jcmwwga0GCCsGAQUFBwEBBIGgMIGdMG4GCCsGAQUFBzABhmJodHRwOi8vdHN0Y3JsLnphdGNhLmdvdi5zYS9DZXJ0RW5yb2xsL1RTWkVpbnZvaWNlU0NBMS5leHRnYXp0Lmdvdi5sb2NhbF9UU1pFSU5WT0lDRS1TdWJDQS0xKDEpLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3RzdGNybC56YXRjYS5nb3Yuc2Evb2NzcDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwMwCgYIKoZIzj0EAwIDSAAwRQIhAMWDOI67/kAqLSDMGeUDUettoh+1dRGNHppri9d7y02vAiAtfnOLHuJBlO8QqNxXOdeQZphNYai0DDzQXmESb+6FZA==");
|
35
|
+
Console.WriteLine("---------------------------------------------------------------------");
|
36
|
+
Console.WriteLine("Please write the number of the option you want : ");
|
37
|
+
Console.WriteLine("1- Generating E-Invoice Hashing (Need E-Invoice XML file path)");
|
38
|
+
Console.WriteLine("2- Validating E-Invoice Hashing (Need E-Invoice XML file path)");
|
39
|
+
Console.WriteLine("3- Generating E-Invoice QR Code (Need E-Invoice XML file path)");
|
40
|
+
Console.WriteLine("4- Validating E-Invoice QR Code (Need E-Invoice XML file path)");
|
41
|
+
Console.WriteLine("5- Validating E-Invoice (Need E-Invoice XML file path)");
|
42
|
+
Console.WriteLine("6- Signing E-Invoice ");
|
43
|
+
Console.WriteLine("7- Generate CSR ");
|
44
|
+
Console.WriteLine("8- Exit Application");
|
45
|
+
while (true)
|
46
|
+
{
|
47
|
+
try
|
48
|
+
{
|
49
|
+
privateKeyContent = File.ReadAllText("privateKey.txt");
|
50
|
+
}
|
51
|
+
catch(Exception ex)
|
52
|
+
{
|
53
|
+
Console.WriteLine("In setup location a file privateKey.txt should be exist");
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
try
|
57
|
+
{
|
58
|
+
certificateContent = File.ReadAllText("certificate.txt");
|
59
|
+
}
|
60
|
+
catch (Exception ex)
|
61
|
+
{
|
62
|
+
Console.WriteLine("In setup location a file certificate.txt should be exist");
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
try
|
66
|
+
{
|
67
|
+
pihContent = File.ReadAllText("pih.txt");
|
68
|
+
}
|
69
|
+
catch (Exception ex)
|
70
|
+
{
|
71
|
+
Console.WriteLine("In setup location a file pih.txt should be exist");
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
Console.Write(" Please Enter you choice : ");
|
75
|
+
string option = Console.ReadLine();
|
76
|
+
if (!string.IsNullOrEmpty(option) && int.TryParse(option.Trim(), out selectedOption) && selectedOption >= 1 && selectedOption <= 7)
|
77
|
+
{
|
78
|
+
string filePath = "";
|
79
|
+
if (selectedOption < 7)
|
80
|
+
{
|
81
|
+
Console.Write(" Please Enter XML file path : ");
|
82
|
+
filePath = Console.ReadLine();
|
83
|
+
if (string.IsNullOrEmpty(filePath))
|
84
|
+
{
|
85
|
+
continue;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
Result objResult = new Result();
|
89
|
+
if (selectedOption == 1)
|
90
|
+
{
|
91
|
+
objResult = _IHashingValidator.GenerateEInvoiceHashing(filePath);
|
92
|
+
}
|
93
|
+
else if (selectedOption == 2)
|
94
|
+
{
|
95
|
+
objResult = _IHashingValidator.ValidateEInvoiceHashing(filePath);
|
96
|
+
}
|
97
|
+
else if (selectedOption == 3)
|
98
|
+
{
|
99
|
+
objResult = _IQRValidator.GenerateEInvoiceQRCode(filePath);
|
100
|
+
}
|
101
|
+
else if (selectedOption == 4)
|
102
|
+
{
|
103
|
+
objResult = _IQRValidator.ValidateEInvoiceQRCode(filePath);
|
104
|
+
}
|
105
|
+
else if (selectedOption == 5)
|
106
|
+
{
|
107
|
+
objResult = _IEInvoiceValidator.ValidateEInvoice(filePath, certificateContent, pihContent);
|
108
|
+
}
|
109
|
+
else if (selectedOption == 6)
|
110
|
+
{
|
111
|
+
objResult = _IEInvoiceSigningLogic.SignDocument(filePath, certificateContent, privateKeyContent);
|
112
|
+
}
|
113
|
+
else if (selectedOption == 7)
|
114
|
+
{
|
115
|
+
string errorMessage = "";
|
116
|
+
CSRGeneratorOpenSSL cSRGeneratorOpenSSL = new CSRGeneratorOpenSSL();
|
117
|
+
cSRGeneratorOpenSSL.GenerateCSRUsingOpenSSLComand(ref errorMessage);
|
118
|
+
Console.WriteLine("CSR Generating Operation has been Finished.");
|
119
|
+
}
|
120
|
+
if (selectedOption != 7)
|
121
|
+
{
|
122
|
+
DisplayResult(objResult);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
else if (selectedOption == 8)
|
126
|
+
{
|
127
|
+
Console.WriteLine("Thanks for using ZATCA SDK.");
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
else
|
131
|
+
{
|
132
|
+
Console.WriteLine("Please write the number of the option you want : ");
|
133
|
+
Console.WriteLine("1- Generating E-Invoice Hashing (Need E-Invoice XML file path)");
|
134
|
+
Console.WriteLine("2- Validate E-Invoice Hashing (Need E-Invoice XML file path)");
|
135
|
+
Console.WriteLine("3- Generate E-Invoice QR Code (Need E-Invoice XML file path)");
|
136
|
+
Console.WriteLine("4- Validate E-Invoice QR Code (Need E-Invoice XML file path)");
|
137
|
+
Console.WriteLine("5- Validate E-Invoice (Need E-Invoice XML file path)");
|
138
|
+
Console.WriteLine("6- Signing E-Invoice ");
|
139
|
+
Console.WriteLine("7- Generate CSR ");
|
140
|
+
Console.WriteLine("8- Exit Application");
|
141
|
+
}
|
142
|
+
Console.WriteLine(" PLEASE ENTER YOUR NEXT OPTION ");
|
143
|
+
}
|
144
|
+
}
|
145
|
+
static void DisplayResult(Result objResult)
|
146
|
+
{
|
147
|
+
Console.WriteLine(" OPERATION : " + objResult.Operation);
|
148
|
+
if (objResult.lstSteps != null && objResult.lstSteps.Count > 0)
|
149
|
+
{
|
150
|
+
foreach (Result currentStep in objResult.lstSteps)
|
151
|
+
{
|
152
|
+
Console.WriteLine(" CURRENT STEP : " + currentStep.Operation);
|
153
|
+
if (currentStep.IsValid)
|
154
|
+
{
|
155
|
+
if (!string.IsNullOrEmpty(currentStep.ResultedValue))
|
156
|
+
{
|
157
|
+
Console.WriteLine(" RESULT : " + currentStep.ResultedValue);
|
158
|
+
}
|
159
|
+
else
|
160
|
+
{
|
161
|
+
Console.WriteLine(" RESULT : Successeded");
|
162
|
+
}
|
163
|
+
}
|
164
|
+
else
|
165
|
+
{
|
166
|
+
Console.WriteLine(" RESULT : Failed");
|
167
|
+
if (!string.IsNullOrEmpty(currentStep.ErrorMessage))
|
168
|
+
{
|
169
|
+
Console.WriteLine(" FAILED REASON : " + currentStep.ErrorMessage);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
//=====================================================
|
175
|
+
if (objResult.IsValid)
|
176
|
+
{
|
177
|
+
Console.WriteLine(" FINAL RESULT : Successeded");
|
178
|
+
if (!string.IsNullOrEmpty(objResult.ResultedValue) && selectedOption != 6)
|
179
|
+
{
|
180
|
+
Console.WriteLine(" Result : " + objResult.ResultedValue);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
else
|
184
|
+
{
|
185
|
+
Console.WriteLine(" FINAL RESULT : Failed");
|
186
|
+
if (!string.IsNullOrEmpty(objResult.ErrorMessage))
|
187
|
+
{
|
188
|
+
Console.WriteLine("FAILED REASON : " + objResult.ErrorMessage);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
|
193
|
+
}
|
194
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
using System.Reflection;
|
2
|
+
using System.Runtime.CompilerServices;
|
3
|
+
using System.Runtime.InteropServices;
|
4
|
+
|
5
|
+
// General Information about an assembly is controlled through the following
|
6
|
+
// set of attributes. Change these attribute values to modify the information
|
7
|
+
// associated with an assembly.
|
8
|
+
[assembly: AssemblyTitle("SDKNETFrameworkTest")]
|
9
|
+
[assembly: AssemblyDescription("")]
|
10
|
+
[assembly: AssemblyConfiguration("")]
|
11
|
+
[assembly: AssemblyCompany("")]
|
12
|
+
[assembly: AssemblyProduct("SDKNETFrameworkTest")]
|
13
|
+
[assembly: AssemblyCopyright("Copyright © 2022")]
|
14
|
+
[assembly: AssemblyTrademark("")]
|
15
|
+
[assembly: AssemblyCulture("")]
|
16
|
+
|
17
|
+
// Setting ComVisible to false makes the types in this assembly not visible
|
18
|
+
// to COM components. If you need to access a type in this assembly from
|
19
|
+
// COM, set the ComVisible attribute to true on that type.
|
20
|
+
[assembly: ComVisible(false)]
|
21
|
+
|
22
|
+
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
23
|
+
[assembly: Guid("62d3e180-e431-45a0-9b6f-d4ac566c0ccd")]
|
24
|
+
|
25
|
+
// Version information for an assembly consists of the following four values:
|
26
|
+
//
|
27
|
+
// Major Version
|
28
|
+
// Minor Version
|
29
|
+
// Build Number
|
30
|
+
// Revision
|
31
|
+
//
|
32
|
+
// You can specify all the values or you can default the Build and Revision Numbers
|
33
|
+
// by using the '*' as shown below:
|
34
|
+
// [assembly: AssemblyVersion("1.0.*")]
|
35
|
+
[assembly: AssemblyVersion("1.0.0.0")]
|
36
|
+
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@@ -0,0 +1,8 @@
|
|
1
|
+
To use the code you need to
|
2
|
+
1. reference .Net SDK DLL
|
3
|
+
2. fill the correct values in Data folder
|
4
|
+
3. create sample xml invoice and use it in the command line tool
|
5
|
+
|
6
|
+
Sample data has been added to the certificate/ pih/ privateKey files.
|
7
|
+
|
8
|
+
To create private key you must use openssl command.
|
Binary file
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<configuration>
|
3
|
+
<appSettings>
|
4
|
+
<add key="ENSchematronsPath" value="..\..\..\Data\Rules\schematrons\20210819_ZATCA_E-invoice_Validation_Rules.xsl"/>
|
5
|
+
<add key="KSASchematronsPath" value="..\..\..\Data\Rules\schematrons\CEN-EN16931-UBL.xsl"/>
|
6
|
+
|
7
|
+
<add key="Embeded_UBL_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\maindoc\UBL-Invoice-2.1.xsd"/>
|
8
|
+
<add key="Embeded_CommonAggregateComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-CommonAggregateComponents-2.1.xsd"/>
|
9
|
+
<add key="Embeded_CommonBasicComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-CommonBasicComponents-2.1.xsd"/>
|
10
|
+
<add key="Embeded_CommonExtensionComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-CommonExtensionComponents-2.1.xsd"/>
|
11
|
+
<add key="Embeded_CommonSignatureComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-CommonSignatureComponents-2.1.xsd"/>
|
12
|
+
<add key="Embeded_SignatureAggregateComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-SignatureAggregateComponents-2.1.xsd"/>
|
13
|
+
<add key="Embeded_SignatureBasicComponents_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-SignatureBasicComponents-2.1.xsd"/>
|
14
|
+
<add key="Embeded_UBL_UnqualifiedDataTypes_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-UnqualifiedDataTypes-2.1.xsd"/>
|
15
|
+
<add key="Embeded_CoreComponentTypeSchemaModule_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-CoreComponentParameters-2.1.xsd"/>
|
16
|
+
<add key="Embeded_ExtensionContentDataType_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-ExtensionContentDataType-2.1.xsd"/>
|
17
|
+
<add key="Embeded_QualifiedDataTypes_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-QualifiedDataTypes-2.1.xsd"/>
|
18
|
+
<add key="Embeded_CCTS_CCT_SchemaModule_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\CCTS_CCT_SchemaModule-2.1.xsd"/>
|
19
|
+
<add key="Embeded_UBL_XAdESv_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-XAdESv141-2.1.xsd"/>
|
20
|
+
<add key="Embeded_UBL_Xmldsig_Core_XSD_PATH" value="..\..\..\Data\Schemas\xsds\UBL2.1\xsd\common\UBL-xmldsig-core-schema-2.1.xsd"/>
|
21
|
+
|
22
|
+
</appSettings>
|
23
|
+
<runtime>
|
24
|
+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
25
|
+
<dependentAssembly>
|
26
|
+
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
27
|
+
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
28
|
+
</dependentAssembly>
|
29
|
+
</assemblyBinding>
|
30
|
+
</runtime>
|
31
|
+
<system.web>
|
32
|
+
<membership defaultProvider="ClientAuthenticationMembershipProvider">
|
33
|
+
<providers>
|
34
|
+
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
|
35
|
+
</providers>
|
36
|
+
</membership>
|
37
|
+
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
|
38
|
+
<providers>
|
39
|
+
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
|
40
|
+
</providers>
|
41
|
+
</roleManager>
|
42
|
+
</system.web>
|
43
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,120 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
3
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
4
|
+
<PropertyGroup>
|
5
|
+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
6
|
+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
7
|
+
<ProjectGuid>{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}</ProjectGuid>
|
8
|
+
<OutputType>Exe</OutputType>
|
9
|
+
<RootNamespace>SDKNETFrameworkTest</RootNamespace>
|
10
|
+
<AssemblyName>SDKNETFrameworkTest</AssemblyName>
|
11
|
+
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
12
|
+
<FileAlignment>512</FileAlignment>
|
13
|
+
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
14
|
+
<Deterministic>true</Deterministic>
|
15
|
+
<PublishUrl>publish\</PublishUrl>
|
16
|
+
<Install>true</Install>
|
17
|
+
<InstallFrom>Disk</InstallFrom>
|
18
|
+
<UpdateEnabled>false</UpdateEnabled>
|
19
|
+
<UpdateMode>Foreground</UpdateMode>
|
20
|
+
<UpdateInterval>7</UpdateInterval>
|
21
|
+
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
22
|
+
<UpdatePeriodically>false</UpdatePeriodically>
|
23
|
+
<UpdateRequired>false</UpdateRequired>
|
24
|
+
<MapFileExtensions>true</MapFileExtensions>
|
25
|
+
<ApplicationRevision>0</ApplicationRevision>
|
26
|
+
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
27
|
+
<IsWebBootstrapper>false</IsWebBootstrapper>
|
28
|
+
<UseApplicationTrust>false</UseApplicationTrust>
|
29
|
+
<BootstrapperEnabled>true</BootstrapperEnabled>
|
30
|
+
</PropertyGroup>
|
31
|
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
32
|
+
<PlatformTarget>AnyCPU</PlatformTarget>
|
33
|
+
<DebugSymbols>true</DebugSymbols>
|
34
|
+
<DebugType>full</DebugType>
|
35
|
+
<Optimize>false</Optimize>
|
36
|
+
<OutputPath>bin\Debug\</OutputPath>
|
37
|
+
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
38
|
+
<ErrorReport>prompt</ErrorReport>
|
39
|
+
<WarningLevel>4</WarningLevel>
|
40
|
+
</PropertyGroup>
|
41
|
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
42
|
+
<PlatformTarget>AnyCPU</PlatformTarget>
|
43
|
+
<DebugType>pdbonly</DebugType>
|
44
|
+
<Optimize>true</Optimize>
|
45
|
+
<OutputPath>bin\Release\</OutputPath>
|
46
|
+
<DefineConstants>TRACE</DefineConstants>
|
47
|
+
<ErrorReport>prompt</ErrorReport>
|
48
|
+
<WarningLevel>4</WarningLevel>
|
49
|
+
</PropertyGroup>
|
50
|
+
<ItemGroup>
|
51
|
+
<Reference Include="BouncyCastle.Crypto">
|
52
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\BouncyCastle.Crypto.dll</HintPath>
|
53
|
+
</Reference>
|
54
|
+
<Reference Include="IKVM.OpenJDK.Core">
|
55
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\IKVM.OpenJDK.Core.dll</HintPath>
|
56
|
+
</Reference>
|
57
|
+
<Reference Include="IKVM.OpenJDK.Text">
|
58
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\IKVM.OpenJDK.Text.dll</HintPath>
|
59
|
+
</Reference>
|
60
|
+
<Reference Include="IKVM.OpenJDK.Util">
|
61
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\IKVM.OpenJDK.Util.dll</HintPath>
|
62
|
+
</Reference>
|
63
|
+
<Reference Include="IKVM.OpenJDK.XML.API">
|
64
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\IKVM.OpenJDK.XML.API.dll</HintPath>
|
65
|
+
</Reference>
|
66
|
+
<Reference Include="IKVM.Runtime">
|
67
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\IKVM.Runtime.dll</HintPath>
|
68
|
+
</Reference>
|
69
|
+
<Reference Include="saxon-he-10.8">
|
70
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\saxon-he-10.8.dll</HintPath>
|
71
|
+
</Reference>
|
72
|
+
<Reference Include="saxon-he-api-10.8">
|
73
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\saxon-he-api-10.8.dll</HintPath>
|
74
|
+
</Reference>
|
75
|
+
<Reference Include="SDKNETFrameWorkLib, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
76
|
+
<SpecificVersion>False</SpecificVersion>
|
77
|
+
<HintPath>..\..\..\..\..\..\Desktop\zatca-einvoicing-sdk-232-R3.1.8\zatca-einvoicing-sdk-232-R3.1.8\Lib\.Net\DLL\SDKNETFrameWorkLib.dll</HintPath>
|
78
|
+
</Reference>
|
79
|
+
<Reference Include="System" />
|
80
|
+
<Reference Include="System.Core" />
|
81
|
+
<Reference Include="System.Xml.Linq" />
|
82
|
+
<Reference Include="System.Data.DataSetExtensions" />
|
83
|
+
<Reference Include="Microsoft.CSharp" />
|
84
|
+
<Reference Include="System.Data" />
|
85
|
+
<Reference Include="System.Net.Http" />
|
86
|
+
<Reference Include="System.Xml" />
|
87
|
+
</ItemGroup>
|
88
|
+
<ItemGroup>
|
89
|
+
<Compile Include="Program.cs" />
|
90
|
+
<Compile Include="Properties\AssemblyInfo.cs" />
|
91
|
+
</ItemGroup>
|
92
|
+
<ItemGroup>
|
93
|
+
<None Include="App.config" />
|
94
|
+
</ItemGroup>
|
95
|
+
<ItemGroup>
|
96
|
+
<Content Include="Data\certificate.txt">
|
97
|
+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
98
|
+
</Content>
|
99
|
+
<Content Include="Data\pih.txt">
|
100
|
+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
101
|
+
</Content>
|
102
|
+
<Content Include="Data\privateKey.txt">
|
103
|
+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
104
|
+
</Content>
|
105
|
+
<Content Include="Readme.txt" />
|
106
|
+
</ItemGroup>
|
107
|
+
<ItemGroup>
|
108
|
+
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
|
109
|
+
<Visible>False</Visible>
|
110
|
+
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
|
111
|
+
<Install>true</Install>
|
112
|
+
</BootstrapperPackage>
|
113
|
+
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
114
|
+
<Visible>False</Visible>
|
115
|
+
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
116
|
+
<Install>false</Install>
|
117
|
+
</BootstrapperPackage>
|
118
|
+
</ItemGroup>
|
119
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
120
|
+
</Project>
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<configuration>
|
3
|
+
<appSettings>
|
4
|
+
<add key="PrivateKeyPath" value="..\..\..\Data\Certificates\ec-secp256k1-priv-key.pem"/>
|
5
|
+
<add key="CertificatePath" value="..\..\..\Data\Certificates\cert.pem"/>
|
6
|
+
<add key="PIHPath" value="..\..\..\Data\PIH\pih.txt"/>
|
7
|
+
</appSettings>
|
8
|
+
|
9
|
+
<startup>
|
10
|
+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
11
|
+
</startup>
|
12
|
+
<runtime>
|
13
|
+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
14
|
+
<dependentAssembly>
|
15
|
+
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
16
|
+
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
17
|
+
</dependentAssembly>
|
18
|
+
</assemblyBinding>
|
19
|
+
</runtime>
|
20
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
Microsoft Visual Studio Solution File, Format Version 12.00
|
3
|
+
# Visual Studio Version 17
|
4
|
+
VisualStudioVersion = 17.3.32929.385
|
5
|
+
MinimumVisualStudioVersion = 10.0.40219.1
|
6
|
+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDKNETFrameworkTest", "SDKNETFrameworkTest.csproj", "{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}"
|
7
|
+
EndProject
|
8
|
+
Global
|
9
|
+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
10
|
+
Debug|Any CPU = Debug|Any CPU
|
11
|
+
Release|Any CPU = Release|Any CPU
|
12
|
+
EndGlobalSection
|
13
|
+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
14
|
+
{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
15
|
+
{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
16
|
+
{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
17
|
+
{62D3E180-E431-45A0-9B6F-D4AC566C0CCD}.Release|Any CPU.Build.0 = Release|Any CPU
|
18
|
+
EndGlobalSection
|
19
|
+
GlobalSection(SolutionProperties) = preSolution
|
20
|
+
HideSolutionNode = FALSE
|
21
|
+
EndGlobalSection
|
22
|
+
GlobalSection(ExtensibilityGlobals) = postSolution
|
23
|
+
SolutionGuid = {7B1DECB4-2AB4-454B-9255-9A153AD3CE83}
|
24
|
+
EndGlobalSection
|
25
|
+
EndGlobal
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
MIID6zCCA5CgAwIBAgITbwAAf18FYT9MDlU3fgABAAB/XzAKBggqhkjOPQQDAjBjMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNnb3YxFzAVBgoJkiaJk/IsZAEZFgdleHRnYXp0MRwwGgYDVQQDExNUU1pFSU5WT0lDRS1TdWJDQS0xMB4XDTIyMDkwMTEwNTEzM1oXDTI0MDgzMTEwNTEzM1owTjELMAkGA1UEBhMCU0ExEzARBgNVBAoTCjMxMDIzMzM3NDYxDDAKBgNVBAsTA1RTVDEcMBoGA1UEAxMTVFNULTMxMDIzMzM3NDYwMDAwMzBWMBAGByqGSM49AgEGBSuBBAAKA0IABGGDDKDmhWAITDv7LXqLX2cmr6+qddUkpcLCvWs5rC2O29W/hS4ajAK4Qdnahym6MaijX75Cg3j4aao7ouYXJ9GjggI5MIICNTCBmgYDVR0RBIGSMIGPpIGMMIGJMTswOQYDVQQEDDIxLVRTVHwyLVRTVHwzLTFhZDZiZjAwLTA2ZWQtNGYxZS1iYWY3LTFkNjIxNGY1Njc3NjEfMB0GCgmSJomT8ixkAQEMDzMxMDIzMzM3NDYwMDAwMzENMAsGA1UEDAwEMTAwMDEMMAoGA1UEGgwDVFNUMQwwCgYDVQQPDANUU1QwHQYDVR0OBBYEFDuWYlOzWpFN3no1WtyNktQdrA8JMB8GA1UdIwQYMBaAFHZgjPsGoKxnVzWdz5qspyuZNbUvME4GA1UdHwRHMEUwQ6BBoD+GPWh0dHA6Ly90c3RjcmwuemF0Y2EuZ292LnNhL0NlcnRFbnJvbGwvVFNaRUlOVk9JQ0UtU3ViQ0EtMS5jcmwwga0GCCsGAQUFBwEBBIGgMIGdMG4GCCsGAQUFBzABhmJodHRwOi8vdHN0Y3JsLnphdGNhLmdvdi5zYS9DZXJ0RW5yb2xsL1RTWkVpbnZvaWNlU0NBMS5leHRnYXp0Lmdvdi5sb2NhbF9UU1pFSU5WT0lDRS1TdWJDQS0xKDEpLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3RzdGNybC56YXRjYS5nb3Yuc2Evb2NzcDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwIwCgYIKwYBBQUHAwMwCgYIKoZIzj0EAwIDSQAwRgIhAL7U7Mnk0MPG/EBShq5LZxx23ZfLnLSG3ufy5s8OKaTuAiEAtDtWqC3Xn0EeYLO+t7xd6ko/r0qU09N7VMd9Rea55dI=
|
@@ -0,0 +1 @@
|
|
1
|
+
NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==
|
@@ -0,0 +1 @@
|
|
1
|
+
MHQCAQEEIDyLDaWIn/1/g3PGLrwupV4nTiiLKM59UEqUch1vDfhpoAcGBSuBBAAKoUQDQgAEYYMMoOaFYAhMO/steotfZyavr6p11SSlwsK9azmsLY7b1b+FLhqMArhB2dqHKboxqKNfvkKDePhpqjui5hcn0Q==
|
Binary file
|