• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jstedfast / MimeKit / 4.9.0.1400
94%

Build:
DEFAULT BRANCH: master
Ran 12 Dec 2024 02:57PM UTC
Jobs 1
Files 186
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Dec 2024 02:49PM UTC coverage: 94.267% (-0.005%) from 94.272%
4.9.0.1400

push

coveralls.net

jstedfast
Fix up dsa.ImportParameters method for Ubuntu runs

It seems to be something about some updates in the OS.  Maybe OpenSSL changes or OS changes.  It broke on the Build server and locally on my Ubuntu 22.04 that I recently updated.

After hours of debugging and finally getting the debugger to attach to the test I could narrow down where the error was happening.  Copilot helped me to find a solution.  I included the explanation here:

Certainly! The line parameters.Y = key.Parameters.G.ModPow(key.X, key.Parameters.P).ToByteArrayUnsigned(); is used to derive the public key component Y from the private key components in the DSA (Digital Signature Algorithm) parameters. Here's a detailed explanation:
DSA Key Components
•	P: A large prime number.
•	Q: A prime divisor of P-1.
•	G: A generator of a subgroup of order Q in the multiplicative group of integers modulo P.
•	X: The private key, which is a randomly chosen integer such that 0 < X < Q.
•	Y: The public key, which is derived from the private key.
Deriving the Public Key Y
In DSA, the public key Y is derived from the private key X using the following formula: [ Y = G^X \mod P ] Where:
•	G is the generator.
•	X is the private key.
•	P is the prime modulus.
Explanation of the Code
•	key.Parameters.G: This is the generator G.
•	key.X: This is the private key X.
•	key.Parameters.P: This is the prime modulus P.
The method ModPow is used to perform modular exponentiation, which calculates ( G^X \mod P ). This operation is efficient and secure for large numbers, which are typical in cryptographic algorithms.
•	key.Parameters.G.ModPow(key.X, key.Parameters.P): This calculates ( G^X \mod P ), resulting in the public key Y as a BigInteger.
•	.ToByteArrayUnsigned(): This converts the resulting BigInteger to an unsigned byte array, which is the format required by the DSAParameters structure.

30960 of 32843 relevant lines covered (94.27%)

0.94 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
2
86.36
-0.33% D/a/MimeKit/MimeKit/MimeKit/Cryptography/WindowsSecureMimeContext.cs
3
83.87
0.32% D/a/MimeKit/MimeKit/MimeKit/Cryptography/AsymmetricAlgorithmExtensions.cs
Jobs
ID Job ID Ran Files Coverage
1 4.9.0.1400.1 12 Dec 2024 02:57PM UTC 186
94.27
Source Files on build 4.9.0.1400
  • Tree
  • List 186
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b8e9a953 on github
  • Prev Build on master (#4.9.0.1393)
  • Next Build on master (#4.9.0.1401)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc