Add getCipherType method and refactor
Merge branch 'master' of git.bouncycastle.org:bc-java
Merge branch 'master' of git.bouncycastle.org:bc-java
Merge branch 'master' of git.bouncycastle.org:bc-java
Add cofactor validation after point decompression
Refactor
Earlier JDK compatibility updates
Earlier JDK compatibility updates
Stop TLS testcases causing failure on JUnit constructor requirements

If you run the Gradle build, you'd see TlsTestCase & DTLSTestCase cause
a build failure:

```
junit.framework.AssertionFailedError:
Class org.bouncycastle.crypto.tls.test.DTLSTestCase has no public
constructor TestCase(String name) or TestCase()
```

The reason is that both these testcases actually have two-arg constructors
(because they need a bunch of extra configuration data), so don't fit the
normal no-arg or one-arg constructor requirement of classes extending
`TestCase`.

The fix used here is to employ JUnit 'parameterized tests', rather than a
TestSuite:

https://github.com/junit-team/junit/wiki/Parameterized-tests

P.S. You can see also see the Gradle build failure in Travis CI here:

https://travis-ci.org/rtyley/spongycastle/builds/29981411#L1052-L1056

(this is why BC needs https://github.com/bcgit/bc-java/pull/80 !)
Add travis-ci, hopefully without spamming the BC folks

Pretty sure BouncyCastle needs OpenJDK to build and run tests

I don't know how to register the unsigned JCE provider on Oracle JDK,
OpenJDK doesn't seem to check.

try to make travis output clearer

http://stackoverflow.com/a/17942820/438886

The '--info' flag hopefully will stop travis builds from
dying from the no-output-in-10-minutes problem, but weirdly is
also the only thing that makes spongycastle tests pass...

https://twitter.com/rtyley/status/425373078084784128

https://travis-ci.org/rtyley/spongycastle/builds/17299026
Git-ignore files generated during Gradle build

These are some of the files/dirs (that you wouldn't want to check-in to
source-control) that I see after getting the gradle-build going:
Gradle: Remove mail the easiest way...

On Android, the dependencies make supporting bc-mail very hard.

Previously I did an rm -Rf on the 'mail' folder of bc, but actually,
just removing the include from settings is way more Git-friendly for
rebasing.
Delete failing McEliece key-pair-generator tests

The keyfactory service doesn't seem to register, leading to a
NoSuchAlgorithmException.
Don't run CertPathBuilderTest & CertPathValidatorTest - both fail

These tests both fail with:

    No CRLs found for issuer "CN=Test CA Certificate"

...none of the CRL files in the project contain that issuer so far as I can
see, so it's going to be difficult to meet that requirement.

CertPathValidatorTest currently fails with:

    org.bouncycastle.jce.exception.ExtCertPathValidatorException: No CRLs found for issuer "CN=Test CA Certificate"
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1516)
    	at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:274)
    	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279)
    	at org.bouncycastle.jce.provider.test.CertPathValidatorTest.performTest(CertPathValidatorTest.java:281)
    	at org.bouncycastle.util.test.SimpleTest.perform(SimpleTest.java:49)
    	at org.bouncycastle.jce.provider.test.AllTests.testJCE(AllTests.java:23)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at junit.framework.TestCase.runTest(TestCase.java:176)
    	at junit.framework.TestCase.runBare(TestCase.java:141)
    	at junit.framework.TestResult$1.protect(TestResult.java:122)
    	at junit.framework.TestResult.runProtected(TestResult.java:142)
    	at junit.framework.TestResult.run(TestResult.java:125)
    	at junit.framework.TestCase.run(TestCase.java:129)
    	at junit.framework.TestSuite.runTest(TestSuite.java:255)
    	at junit.framework.TestSuite.run(TestSuite.java:250)
    	at junit.framework.TestSuite.runTest(TestSuite.java:255)
    	at junit.framework.TestSuite.run(TestSuite.java:250)
    	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:80)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:47)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
    	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    	at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
    	at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    	at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
    	at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:103)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    	at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355)
    	at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:724)
    Caused by: org.bouncycastle.jce.provider.AnnotatedException: No CRLs found for issuer "CN=Test CA Certificate"
    	at org.bouncycastle.jce.provider.CertPathValidatorUtilities.getCompleteCRLs(CertPathValidatorUtilities.java:1224)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.checkCRL(RFC3280CertPathUtilities.java:1750)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.checkCRLs(RFC3280CertPathUtilities.java:1986)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1506)
    	... 45 more

org.bouncycastle.jce.provider.test.AllTests > testJCE FAILED
    junit.framework.AssertionFailedError: CertPathValidator: Exception: org.bouncycastle.jce.exception.ExtCertPathValidatorException: No CRLs found for issuer "CN=Test CA Certificate"
        at junit.framework.Assert.fail(Assert.java:57)
        at junit.framework.TestCase.fail(TestCase.java:227)
        at org.bouncycastle.jce.provider.test.AllTests.testJCE(AllTests.java:32)
floom
Gradle: Upload signed Spongy Castle artifacts to Sonatype OSS Nexus

http://yennicktrevels.com/blog/2013/10/11/automated-gradle-project-deployment-to-sonatype-oss-repository/

Using a 'spongycastle' subgroup (ie com.madgag.spongycastle) to give a useful
grouping, apparently this is legit:

https://docs.sonatype.org/display/Repository/Choosing+your+Coordinates

Also guard against missing gradle.properties for travis, which doesn't have
to do signing or uploading to sonatype.
Fix provider mapping for KeyStore - should be "BC" not "SC"

I think "BC" here is a KeyStore format, not a provider.

Would be nice to not have to make this correction, but without
code changes, I think it wouldn't be easy to write a distingushing
ssed expression.
Disable test that attempts to deserialise org.bouncycastle class