public void ParseQrCodeGeschlossenesSystemTest() { var test = new ReceiptQrCode(QRCODE1); string Ordnungsbegriff_des_Unternehmers = test.CertificateSerial; Assert.True(test.IstGeschlossenesSystem()); Assert.Equal("U:ATU46674503-01", Ordnungsbegriff_des_Unternehmers); }
public void ValidatePrimesignSignatureTest() { byte[] certBits = Convert.FromBase64String(CERT64ENCODED); var test = new ReceiptQrCode(QRCODE1); bool ok = test.ValidateSignatureBouncyCastle(certBits); Assert.True(ok); }
public void JwsHashTest() { var test = new ReceiptQrCode(QRCODE1); byte[] hash = test.GetJwsHash(); string convertedHash = Convert.ToBase64String(hash); Assert.Equal("RQvAE3zXoCVonYn8D5KIOZbcTxM+O0lOtOXBTqWarqM=", convertedHash); }
public void VerifySignatureTest() { byte[] certBits = Convert.FromBase64String(CERT64ENCODED); var test = new ReceiptQrCode(QRCODE1); bool verified = test.ValidateSignature(certBits); Assert.True(verified); }
public void LookupPrimesignCertificateTest() { var test = new ReceiptQrCode(QRCODE1); string certSerial = test.CertificateSerial; // Lookup needs serial in decimal long certificateSerialDecimal = Convert.ToInt64(certSerial, 16); Assert.Equal(491306597551448, certificateSerialDecimal); // Sample Primesign lookup for above serial var result = CertificateLookup.Primesign(certificateSerialDecimal); string cert64Encoded = Convert.ToBase64String(result.CertificateBinary); Assert.Equal(CERT64ENCODED, cert64Encoded); }
public void LookupATrustCertificateTest() { var test = new ReceiptQrCode(QRCODE1); string certSerial = test.CertificateSerial; // Lookup needs serial in decimal int certificateSerialDecimal = Convert.ToInt32(certSerial, 16); Assert.Equal(2065058440, certificateSerialDecimal); // Sample A-Trust lookup for above serial var result = CertificateLookup.ATrust(certificateSerialDecimal); string cert64Encoded = Convert.ToBase64String(result.CertificateBinary); Assert.Equal(CERT64ENCODED, cert64Encoded); }
private async void ScanBon_Clicked(object sender, EventArgs e) { try { var scanner = DependencyService.Get <IQrScanningService>(); var result = await scanner.ScanAsync(); if (result != null) { System.Diagnostics.Debug.WriteLine("QR: " + result); StringBuilder stb = new StringBuilder(); stb.AppendLine($"QR: {result}"); var qrCode = new ReceiptQrCode(result); if (qrCode.IsValid) { stb.AppendLine($"Cipher Suite: {qrCode.CipherSuite}"); if (!qrCode.IstGeschlossenesSystem()) { stb.AppendLine($"Cert Id: {qrCode.CertificateSerialAsDecimal}"); } else { stb.AppendLine("Kassentyp: geschlossenes System"); } stb.AppendLine($"Datum: {qrCode.Date}"); stb.AppendLine($"Beträge: {qrCode.BetragSatzNormal} / {qrCode.BetragSatzErmaessigt1} / {qrCode.BetragSatzErmaessigt2} / {qrCode.BetragSatzNull} / {qrCode.BetragSatzBesonders}"); if (!qrCode.IstGeschlossenesSystem()) { var certificateLookupResult = CertificateLookup.Lookup(qrCode); if (certificateLookupResult.Found) { bool verified = qrCode.ValidateSignatureBouncyCastle(certificateLookupResult.CertificateBinary); stb.AppendLine($"Ergebnis Validierung Signatur: {verified}"); } else { stb.AppendLine($"Fehler: Zertifikat nicht gefunden, {certificateLookupResult.ErrorMessage}"); } } else { stb.AppendLine($"Ordnungsbegriff des Unternehmers: {qrCode.CertificateSerial}"); } } else { stb.AppendLine("Fehler: QR Code ungültig"); } VerificationResult.Text = stb.ToString(); } } catch (Exception ex) { await DisplayAlert("Scan Error", ex.ToString(), "OK"); } }
public void SignatureValueExtractionTest() { var test = new ReceiptQrCode(QRCODE1); Assert.Equal("irdxIo1TAowB1OzpU+dgeAS887k8AuT09jrcMjZx95xHzbKp5pLQcupkbpZK5UxtDaxj08+8bRO30Y4wxiwonw==", test.SignatureValue); }