Or alternatively, if using random values each time, have it retry the
test with a different value. It's typically better to use an actual
property testing library for these types of tests anyways. One example
library I found is https://jqwik.net/ (these types of testing
libraries are more common in functional programming like in Scala).

On Thu, 6 Aug 2020 at 09:59, Matt Sicker <boa...@gmail.com> wrote:
>
> Choose a seed value for the `new Random()` constructor and the tests
> will be deterministic.
>
> On Thu, 6 Aug 2020 at 09:57, Rob Tompkins <chtom...@gmail.com> wrote:
> >
> >
> >
> > > On Aug 6, 2020, at 10:56 AM, Gary Gregory <garydgreg...@gmail.com> wrote:
> > >
> > > This is all fine and good but how would you fix the test such that it does
> > > not fail randomly. PR anyone?
> >
> > Either static inputs for determinism, or putting a probabilistic boundary 
> > in which the solution can fall.
> >
> > -Rob
> >
> > >
> > > Gary
> > >
> > > On Thu, Aug 6, 2020 at 10:54 AM Matt Sicker <boa...@gmail.com> wrote:
> > >
> > >> The ECC stuff I mostly learned about from various Bernstein papers
> > >> like this one: https://cr.yp.to/newelliptic/nistecc-20160106.pdf
> > >>
> > >> On Thu, 6 Aug 2020 at 09:50, Rob Tompkins <chtom...@gmail.com> wrote:
> > >>>
> > >>>
> > >>>
> > >>>> On Aug 6, 2020, at 10:42 AM, Matt Sicker <boa...@gmail.com> wrote:
> > >>>>
> > >>>> Well, for testing RNGs, I can understand using property testing, yes.
> > >>>> It would also be useful for testing fuzzing scenarios like making sure
> > >>>> the GCM tag is invalid for any random input data (giving a near zero
> > >>>> probability of valid data) or that an elliptic curve implementation
> > >>>> doesn't leak out information about points outside the curve or respond
> > >>>> to invalid inputs improperly or things like that.
> > >>>
> > >>> +1 - the elliptic curve stuff I’ll have to defer to you on as I’m less a
> > >> number theorist and more of a logician.
> > >>>
> > >>> -Rob
> > >>>
> > >>>>
> > >>>> On Thu, 6 Aug 2020 at 09:37, Rob Tompkins <chtom...@gmail.com> wrote:
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>> On Aug 6, 2020, at 10:33 AM, Matt Sicker <boa...@gmail.com> wrote:
> > >>>>>>
> > >>>>>> Now I hope we don't have unit tests depending on non-static state for
> > >>>>>> its random number generator! ;)
> > >>>>>
> > >>>>> We actually do have a considerable number of those in our projects
> > >> where we use probabilistic epsilons on the output. See commons-rng. Note,
> > >> Gilles is quite good at writing such tests.
> > >>>>>
> > >>>>> -Rob
> > >>>>>
> > >>>>>> I'd expect a crypto library's test
> > >>>>>> suites to include several hard-coded known-good and known-bad
> > >>>>>> ciphertexts with static keys/IVs similar to the test cases presented
> > >>>>>> in their RFCs (especially since said tests are typically small enough
> > >>>>>> to copy/paste the binary data fairly easily).
> > >>>>>>
> > >>>>>> On Thu, 6 Aug 2020 at 08:19, Gary Gregory <garydgreg...@gmail.com>
> > >> wrote:
> > >>>>>>>
> > >>>>>>> On Thu, Aug 6, 2020 at 8:31 AM Alex Remily <alex.rem...@gmail.com>
> > >> wrote:
> > >>>>>>>
> > >>>>>>>> No problem.  I'll do it when I get home tonight.
> > >>>>>>>>
> > >>>>>>>
> > >>>>>>> Thanks Alex!
> > >>>>>>>
> > >>>>>>> Gary
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>>
> > >>>>>>>> On Thu, Aug 6, 2020, 8:25 AM Gary Gregory <garydgreg...@gmail.com>
> > >> wrote:
> > >>>>>>>>
> > >>>>>>>>> Hi Alex,
> > >>>>>>>>>
> > >>>>>>>>> Would you mind creating that ticket with that info?
> > >>>>>>>>>
> > >>>>>>>>> Thank you,
> > >>>>>>>>> Gary
> > >>>>>>>>>
> > >>>>>>>>> On Thu, Aug 6, 2020, 08:10 Alex Remily <alex.rem...@gmail.com>
> > >> wrote:
> > >>>>>>>>>
> > >>>>>>>>>> That is an intermittent issue that I haven't been able to
> > >> reliably
> > >>>>>>>>>> reproduce.  As I recall, the test that's failing is supposed to
> > >> fail,
> > >>>>>>>> but
> > >>>>>>>>>> in a different way.  I think it's supposed to fail because of a
> > >> short
> > >>>>>>>>>> buffer but occasionally fails because of an internal error, and
> > >> when
> > >>>>>>>> that
> > >>>>>>>>>> happens this test fails.  I don't know when it was introduced.
> > >> We
> > >>>>>>>> should
> > >>>>>>>>>> probably document it in jira and or realese notes.
> > >>>>>>>>>>
> > >>>>>>>>>> On Wed, Aug 5, 2020, 10:53 PM Gary Gregory <
> > >> garydgreg...@gmail.com>
> > >>>>>>>>> wrote:
> > >>>>>>>>>>
> > >>>>>>>>>>> Hi All:
> > >>>>>>>>>>>
> > >>>>>>>>>>> I am seeing what may be a random AEADBadTagException in
> > >>>>>>>> GcmCipherTest?
> > >>>>>>>>>>>
> > >>>>>>>>>>> For example:
> > >>>>>>>>>>>
> > >>>>>>>>>>> [ERROR]
> > >>>>>>>>>>
> > >> testGcmTamperedData(org.apache.commons.crypto.cipher.GcmCipherTest)
> > >>>>>>>>>>> Time elapsed: 0.015 s  <<< ERROR!
> > >>>>>>>>>>> 881java.lang.Exception: Unexpected exception,
> > >>>>>>>>>>> expected<javax.crypto.AEADBadTagException> but
> > >>>>>>>>>>> was<java.lang.InternalError>
> > >>>>>>>>>>> 882     at
> > >>>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>
> > >> org.apache.commons.crypto.cipher.GcmCipherTest.testGcmTamperedData(GcmCipherTest.java:224)
> > >>>>>>>>>>> 883
> > >>>>>>>>>>> 884
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>>> Any thoughts?
> > >>>>>>>>>>>
> > >>>>>>>>>>> The above is from
> > >>>>>>>>>>>
> > >> https://travis-ci.org/github/apache/commons-crypto/jobs/715348986
> > >>>>>>>>>>>
> > >>>>>>>>>>> Gary
> > >>>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> --
> > >>>>>> Matt Sicker <boa...@gmail.com>
> > >>>>>>
> > >>>>>> ---------------------------------------------------------------------
> > >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>>>>
> > >>>>>
> > >>>>>
> > >>>>> ---------------------------------------------------------------------
> > >>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>>>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>>>
> > >>>>
> > >>>>
> > >>>> --
> > >>>> Matt Sicker <boa...@gmail.com>
> > >>>>
> > >>>> ---------------------------------------------------------------------
> > >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>>
> > >>>
> > >>>
> > >>> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >>> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>>
> > >>
> > >>
> > >> --
> > >> Matt Sicker <boa...@gmail.com>
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > >> For additional commands, e-mail: dev-h...@commons.apache.org
> > >>
> > >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
>
>
> --
> Matt Sicker <boa...@gmail.com>



-- 
Matt Sicker <boa...@gmail.com>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to