Skip to content
Commits on Source (8)
......@@ -6,6 +6,11 @@ Thanks, may your castles never deflate!
<p>
Donors
<p>
The following people donated financially to help with the release of 1.60:
<br />
Jens Neuhalfen and perillamint.
</p>
<p>
The following people donated financially to help with the release of 1.59:
<br />
Brian Reid.
......@@ -272,7 +277,7 @@ CertPath support for implicit DSA parameters and a range of NameConstraints. Add
<li>Georg Lippold &lt;georg.lippold&#064gmx.de&gt; - initial implementation of NaccacheStern cipher.</li>
<li>Chris Viles &lt;chris_viles&#064yahoo.com&gt; - fix to SignatureSubpacket critical bit setting.</li>
<li>Pasi Eronen &lt;Pasi.Eronen&#064nokia.com&gt; - extra toString() support for ASN.1 library. Initial patch for large OID components.</li>
<li>Lijun Liao &lt;lijun.liao&#064rub.de&gt; - performance enhancements for SHA family of digests. Bug report and patch for blank line handling in ArmoredInputStream.</li>
<li>Lijun Liao &lt;https://github.com/xipki&gt; performance enhancements for SHA family of digests. Bug report and patch for blank line handling in ArmoredInputStream. Addition of getSignatureAlgorithmID to BasicOCSPResp. Reset fix for SM2 signatures, performance improvements for SHA-3. Clean up of CMP EncryptedValueBuilder, additional functionality on PollReqContent.</li>
<li>Maria Ivanova &lt;maria.ivanova&#064gmail.com&gt; - support for tags > 30 in ASN.1 parsing.</li>
<li>Armin H&auml;berling &lt;arminha&#064student.ethz.ch&gt; - first cut of internationalisation, initial PKIX validation classes.</li>
<li>Marius Schilder &lt;mschilder&#064google.com&gt; - main set of test vectors for Bleichenbacher's forgery attack.</li>
......@@ -406,7 +411,6 @@ CertPath support for implicit DSA parameters and a range of NameConstraints. Add
<li>KB Sriram&lt;mail_kb&#064yahoo.com&gt; testing for odd encodings for PGP User Attribute Subpackets.</li>
<li>Marco Schulze&lt;marco&#064nightlabs.de&gt; Reported verification bug in GenericSigner.</li>
<li>Martin Schaef&lt;https://github.com/martinschaef&gt; contributed a code-cleanup patch.</li>
<li>Lijun Liao&lt;&jun.liao&#064gmail.comgt; addition of getSignatureAlgorithmID to BasicOCSPResp.</li>
<li>dstutz&lt;https://github.com/dstutz&gt; added iteration count setters to PKCS#12 PBE mac/key generator builders.</li>
<li>Tobias Wich&lt;tobias.wich&#064ecsec.de&gt; Provided patch for TLS to work around servers sending Supported Elliptic Curves extension unexpectedly.</li>
<li>Hauke Mehrtens&lt;hauke&#064hauke-m.de&gt; TLS patch to add ECDHE_ECDSA CCM ciphersuites from RFC 7251.</li>
......@@ -457,16 +461,27 @@ CertPath support for implicit DSA parameters and a range of NameConstraints. Add
<li>didisoft &lt;https://github.com/didisoft&gt; test code for PGP signature removal involving user ids.</li>
<li>Mike Safonov&lt;https://github.com/MikeSafonov&gt; initial implementation of GOST3410-2012 for light weight provider and JCA, parameters patches for ECGOST keys, initial implementation of GOST3412-2015.</li>
<li>Artem Storozhuk &lt;storojs72&#064gmail.com&gt; initial implementation of DSTU7564 (digest) and DSTU7624 (cipher) and their associated modes.</li>
<li>Andreas Glaser &lt;andreas.glaser@gi-de.com&gt; patch to recognise ANSSI curves for PKCS#10 requests.</li>
<li>Andreas Glaser &lt;andreas.glaser&#064gi-de.com&gt; patch to recognise ANSSI curves for PKCS#10 requests.</li>
<li>codeborne &lt;https://github.com/cbxp&gt; patch to correct OIDs used in public key digest parameters for ECGOST-2012.</li>
<li>FauxFaux &lt;https://github.com/FauxFaux&gt; patch for JDK 1.9 update to DRBG.java.</li>
<li>4garbage &lt;https://github.com/4garbage&gt; patch to allow GOST3410-94 private keys encoded as integers.</li>
<li>ekszz &lt;https://github.com/ekszz&gt; corrections to SM2 signer to include default identity value.</li>
<li>jminer &lt;https://github.com/jminer&gt; fix to Blake2b for hashes in range of 2**64-127 to 2**64.</li>
<li>str4d &lt;https://github.com/str4d&gt; initial implementation of Blake2s</li>
<li>Scott Woodward &lt;scott&#064bit3consulting.com&gt; performance fix for CTRSP800DRBG.</li>
<li>Lijun Liao &lt;https://github.com/xipki&gt; reset fix for SM2 signatures, performance improvements for SHA-3.</li>
<li>Scott Woodward &lt;scott&#064bit3consulting.com&gt; performance fixes for CTRSP800DRBG.</li>
<li>David Strawn &lt;https://github.com/isomarcte&gt; fix for off by one error in SCRYPT bounds checking.</li>
<li>chris mccown &lt;0xchrismccown&#064gmail.com&gt; identification of serialisation issue with XMSS/XMSSMT private keys.</li>
<li>ZZMarquis &lt;https://github.com/ZZMarquis&gt; offset patch for SM2 decrypt.</li>
<li>Andreas Kretschmer &lt;https://github.com/Akretsch&gt; NPE fix for CertTemplate.getVersion()</li>
<li>Armin Lunkeit, Michael Tautenhahn &lt;&gt; identification of M-R test issue on higher certainty values in RSA key pair generation.</li>
<li>Vincent Breitmoser &lt;https://github.com/Valodim&gt; fix to ignore unnecessary checksum calculator on PGP secret key encryption.</li>
<li>Adam Vartanian &lt;https://github.com/flooey&gt; use of ShortBuffer exception and buffer size pre-check in Cipher.doFinal().</li>
<li>Bernd &lt;https://github.com/ecki&gt; Fix to make PGPUtil.pipeFileContents use buffer and not leak file handle.</li>
<li>Shartung &lt;https://github.com/shartung&gt; Additional EC Key Agreement algorithms in support of German BSI TR-03111.</li>
<li>Paul Schaub &lt;https://github.com/vanitasvitae&gt; bringing PGPSecretKey.getUserIds() into line with PGPPublicKey.getUserIds(). Exception message fix in BcPublicKeyDataDecryptorFactory.</li>
<li>Nick of Nexxar &lt;https://github.com/nros&gt; update to OpenPGP package to handle a broader range of EC curves.</li>
<li>catbref &lt;https://github.com/catbref&gt; sample implementation of RFC 7748/Ed25519 (incorporated work from github users Valodim and str4d as well).</li>
<li>gerlion &lt;https://github.com/gerlion&gt; detection of concurrency issue with pre-1.60 EC math library.</li>
</ul>
</body>
</html>
<html>
<body bgcolor=#ffffff>
Copyright (c) 2000-2017 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
Copyright (c) 2000-2018 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)
<p>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
......
......@@ -163,9 +163,11 @@
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.data" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.crt" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.cvcert" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.kbx" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.csr" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.crl" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.cer" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.kbx" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.key" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.der" />
<fileset dir="${artifacts.dir}/@{target}/src" includes="**/*.txt" />
......@@ -195,6 +197,7 @@
<include name="**/*.sig" />
<include name="**/*.data" />
<include name="**/*.cer" />
<include name="**/*.kbx" />
<include name="**/*.der" />
<include name="**/*.message" />
<include name="**/*.txt" />
......@@ -324,6 +327,7 @@
<exclude name="org/bouncycastle/est/**" />
<exclude name="org/bouncycastle/cmc/**" />
<exclude name="org/bouncycastle/mail/**" />
<exclude name="org/bouncycastle/gpg/**" />
<exclude name="org/bouncycastle/openpgp/**" />
<exclude name="org/bouncycastle/openssl/**" />
<exclude name="org/bouncycastle/mozilla/**" />
......@@ -363,6 +367,7 @@
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
<attribute name="Automatic-Module-Name" value="org.bouncycastle.provider" />
</manifestElements>
</compile>
......@@ -421,6 +426,7 @@
<exclude name="**/*.key" />
<exclude name="org/bouncycastle/**.crt" />
<exclude name="org/bouncycastle/**/test/*.cer" />
<exclude name="org/bouncycastle/**/test/*.kbx" />
<exclude name="org/bouncycastle/**/test/*.csr" />
<exclude name="org/bouncycastle/**/test/*.cvcert" />
<exclude name="org/bouncycastle/**/test/*.eml" />
......@@ -441,6 +447,7 @@
<exclude name="org/bouncycastle/operator/**" />
<exclude name="org/bouncycastle/sasn1/**" />
<exclude name="org/bouncycastle/tsp/**" />
<exclude name="org/bouncycastle/gpg/**" />
<exclude name="org/bouncycastle/openpgp/**" />
<exclude name="org/bouncycastle/openssl/**" />
<exclude name="org/bouncycastle/mozilla/**" />
......@@ -543,6 +550,7 @@
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
<attribute name="Automatic-Module-Name" value="org.bouncycastle.mail" />
</manifestElements>
</compile>
......@@ -587,6 +595,7 @@
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
<attribute name="Automatic-Module-Name" value="org.bouncycastle.tls" />
</manifestElements>
</compile>
......@@ -638,6 +647,7 @@
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
<attribute name="Automatic-Module-Name" value="org.bouncycastle.pkix" />
</manifestElements>
</compile>
......@@ -661,6 +671,7 @@
<fileset dir="${src.dir}">
<include name="org/bouncycastle/bcpg/**/*.java" />
<include name="org/bouncycastle/openpgp/**/*.java" />
<include name="org/bouncycastle/gpg/**/*.java" />
<include name="org/bouncycastle/apache/**/*.java" />
<exclude name="**/*Test.java" />
<exclude name="**/*Tests.java" />
......@@ -687,6 +698,7 @@
<attribute name="Codebase" value="*" />
<attribute name="Application-Library-Allowable-Codebase" value="*" />
<attribute name="Caller-Allowable-Codebase" value="*" />
<attribute name="Automatic-Module-Name" value="org.bouncycastle.pg" />
</manifestElements>
</compile>
......@@ -726,6 +738,7 @@
<fileset dir="${src.dir}" includes="**/*.crt" />
<fileset dir="${src.dir}" includes="**/*.key" />
<fileset dir="${src.dir}" includes="**/*.cer" />
<fileset dir="${src.dir}" includes="**/*.kbx" />
<fileset dir="${src.dir}" includes="**/*.crl" />
<fileset dir="${src.dir}" includes="**/*.csr" />
<fileset dir="${src.dir}" includes="**/*.txt" />
......@@ -945,7 +958,7 @@
<package name="org.bouncycastle.tls.*" />
<package name="org.bouncycastle.jsse.*" />
<group title="TLS/DTLS Packages" packages="org.bouncycastle.tls,org.bouncycastle.tls.crypto*" />
<group title="JSSE Provider Packages" packages="org.bouncycastle.jsse.provider" />
<group title="BC JSSE Provider Packages" packages="org.bouncycastle.jsse,org.bouncycastle.jsse.provider" />
<group title="TLS/DTLS/JSSE Provider Test and Example Packages" packages="org.bouncycastle.jsse.provider.test*,org.bouncycastle.tls.test*" />
</docElements>
</compile-doc>
......@@ -1026,9 +1039,11 @@
<copy todir="${pg.target.src.dir}">
<fileset dir="${src.dir}">
<include name="org/bouncycastle/openpgp/**/test/*.java" />
<include name="org/bouncycastle/gpg/**/test/*.java" />
<include name="org/bouncycastle/bcpg/**/test/*.java" />
<include name="org/bouncycastle/apache/**/*.html" />
<include name="org/bouncycastle/openpgp/**/*.html" />
<include name="org/bouncycastle/gpg/**/*.html" />
<include name="org/bouncycastle/bcpg/**/*.html" />
</fileset>
</copy>
......@@ -1036,10 +1051,11 @@
<compile-doc srcDir="${pg.target.src.dir}" docsDir="${artifacts.docs.dir}/bcpg">
<docElements>
<package name="org.bouncycastle.openpgp.*" />
<package name="org.bouncycastle.gpg.*" />
<package name="org.bouncycastle.bcpg.*" />
<group title="BCPG Support Packages" packages="org.bouncycastle.bcpg*" />
<group title="OpenPGP Packages" packages="org.bouncycastle.openpgp*" />
<group title="OpenPGP Test and Example Packages" packages="org.bouncycastle.openpgp.test*,org.bouncycastle.openpgp.examples*" />
<group title="OpenPGP Packages" packages="org.bouncycastle.gpg,org.bouncycastle.gpg.keybox,org.bouncycastle.openpgp*" />
<group title="OpenPGP Test and Example Packages" packages="org.bouncycastle.gpg.test,org.bouncycastle.openpgp.test*,org.bouncycastle.openpgp.examples*" />
</docElements>
</compile-doc>
......
......@@ -90,6 +90,7 @@
<exclude name="**/est/**/*.java" />
</fileset>
<fileset dir="pg/src/main/java">
<exclude name="**/keybox/*.java" />
</fileset>
<fileset dir="mail/src/main/java">
<exclude name="**/ValidateSignedMail.java" />
......@@ -132,6 +133,7 @@
<exclude name="**/jce/provider/test/AEADTest.java" />
</fileset>
<fileset dir="prov/src/test/java">
<exclude name="**/GOST3410KeyPairTest.java" />
<exclude name="**/MQVTest.java" />
<exclude name="**/ECDSA5Test.java" />
<exclude name="**/NamedCurveTest.java" />
......@@ -217,6 +219,7 @@
<fileset dir="core/src/main/jdk1.4" includes="**/*.java" />
<fileset dir="prov/src/main/jdk1.4" includes="**/*.java" >
<exclude name="**/LDAP*.java" />
<exclude name="**/rsa/PSSParamSpec.java" />
</fileset>
<fileset dir="pkix/src/main/jdk1.4" includes="**/*.java" />
<fileset dir="pg/src/main/jdk1.4" includes="**/*.java" />
......
......@@ -26,7 +26,9 @@
<exclude name="**/ntru/**/*.java" />
<exclude name="**/xmss/**/*.java" />
</fileset>
<fileset dir="pg/src/main/java" />
<fileset dir="pg/src/main/java" >
<exclude name="**/keybox/**/*.java" />
</fileset>
<fileset dir="pkix/src/main/java" >
<exclude name="**/est/**/*.java" />
</fileset>
......@@ -69,7 +71,10 @@
<exclude name="**/pqc/**/XMS*.java" />
<exclude name="**/GetInstanceTest.java" />
</fileset>
<fileset dir="pg/src/test/java" />
<fileset dir="pg/src/test/java" >
<exclude name="**/keybox/**/*.java" />
<exclude name="**/gpg/test/*.java" />
</fileset>
<fileset dir="pkix/src/test/java" >
<exclude name="**/est/**/*.java" />
<exclude name="**/TimeStampTokenInfoUnitTest.java"/>
......@@ -80,6 +85,7 @@
<exclude name="**/DetDSATest.java" />
<exclude name="**/ECDSA5Test.java" />
<exclude name="**/CRL5Test.java" />
<exclude name="**/GOST3410KeyPairTest.java" />
<exclude name="**/NamedCurveTest.java" />
<exclude name="**/X509LDAPCertStoreTest.java" />
<exclude name="**/X509StoreTest.java" />
......
release.suffix: 159
release.name: 1.59
release.version: 1.59
release.suffix: 160
release.name: 1.60
release.version: 1.60.0
release.debug: false
mail.jar.home: /opt/javamail/mail.jar
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions>
<entry name=".+\.(properties|xml|html|dtd|tld)" />
<entry name=".+\.(gif|png|jpeg|jpg)" />
</resourceExtensions>
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.groovy" />
</wildcardResourcePatterns>
</component>
<component name="CopyrightManager" default="" />
<component name="DependencyValidationManager">
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</component>
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
<component name="GradleUISettings">
<setting name="root" />
</component>
<component name="GradleUISettings2">
<setting name="root" />
</component>
<component name="IdProvider" IDEtalkID="11DA1DB66DD62DDA1ED602B7079FE97C" />
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
</profile>
<version value="1.0" />
</component>
<component name="JavadocGenerationManager">
<option name="OUTPUT_DIRECTORY" />
<option name="OPTION_SCOPE" value="protected" />
<option name="OPTION_HIERARCHY" value="true" />
<option name="OPTION_NAVIGATOR" value="true" />
<option name="OPTION_INDEX" value="true" />
<option name="OPTION_SEPARATE_INDEX" value="true" />
<option name="OPTION_DOCUMENT_TAG_USE" value="false" />
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" />
<option name="OPTION_DOCUMENT_TAG_VERSION" value="false" />
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
<option name="OPTION_DEPRECATED_LIST" value="true" />
<option name="OTHER_OPTIONS" value="" />
<option name="HEAP_SIZE" />
<option name="LOCALE" />
<option name="OPEN_IN_BROWSER" value="true" />
</component>
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
<component name="ProjectCodeStyleConfiguration">
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value />
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/bc-java.iml" filepath="$PROJECT_DIR$/bc-java.iml" />
<module fileurl="file://$PROJECT_DIR$/core/core.iml" filepath="$PROJECT_DIR$/core/core.iml" />
<module fileurl="file://$PROJECT_DIR$/mail/mail.iml" filepath="$PROJECT_DIR$/mail/mail.iml" />
<module fileurl="file://$PROJECT_DIR$/misc/misc.iml" filepath="$PROJECT_DIR$/misc/misc.iml" />
<module fileurl="file://$PROJECT_DIR$/pg/pg.iml" filepath="$PROJECT_DIR$/pg/pg.iml" />
<module fileurl="file://$PROJECT_DIR$/pkix/pkix.iml" filepath="$PROJECT_DIR$/pkix/pkix.iml" />
<module fileurl="file://$PROJECT_DIR$/prov/prov.iml" filepath="$PROJECT_DIR$/prov/prov.iml" />
<module fileurl="file://$PROJECT_DIR$/test/test.iml" filepath="$PROJECT_DIR$/test/test.iml" />
<module fileurl="file://$PROJECT_DIR$/tls/tls.iml" filepath="$PROJECT_DIR$/tls/tls.iml" />
</modules>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.7" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SvnBranchConfigurationManager">
<option name="mySupportsUserInfoFilter" value="true" />
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl />
</splitter-proportions>
<settings />
</UIState>
</state>
<state key="Copyright.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl />
</splitter-proportions>
</UIState>
</state>
<state key="ProjectJDKs.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</SplitterProportionsDataImpl>
</splitter-proportions>
<last-edited>1.6</last-edited>
</UIState>
</state>
<state key="ScopeChooserConfigurable.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl />
</splitter-proportions>
<settings />
</UIState>
</state>
</states>
</component>
</project>
\ No newline at end of file
This diff is collapsed.
......@@ -59,6 +59,9 @@ find $jdk11src -name "*.java" -exec scripts/useseccert.sh \{\} \;
(
cd $jdk11src
rm org/bouncycastle/jce/provider/test/GOST3410KeyPairTest.java
rm org/bouncycastle/jce/provider/test/DRBGTest.java
rm -rf org/bouncycastle/math/ec/rfc8032/test
rm -rf org/bouncycastle/crypto/test/ntru
rm -rf org/bouncycastle/pqc/math/ntru
rm -rf org/bouncycastle/pqc/crypto/ntru
......@@ -75,6 +78,7 @@ find $jdk11src -name "*.java" -exec scripts/useseccert.sh \{\} \;
rm -rf org/bouncycastle/math/ec/test
rm -rf org/bouncycastle/math/ec/custom/test
rm -rf org/bouncycastle/math/ec/custom/sec/test
rm -rf org/bouncycastle/crypto/CryptoServicesPermission.java
rm -rf org/bouncycastle/crypto/tls/test
rm -rf org/bouncycastle/crypto/test/GCMReorderTest.java
rm -rf org/bouncycastle/jce/cert
......@@ -544,6 +548,8 @@ then
rm -rf src/org/bouncycastle/voms
rm -rf src/org/bouncycastle/sasn1
rm -rf src/org/bouncycastle/asn1/test
rm -rf src/org/bouncycastle/gpg/keybox
rm -rf src/org/bouncycastle/gpg/test
rm -f src/org/bouncycastle/openpgp/test/DSA2Test.java
rm -f src/org/bouncycastle/openpgp/test/PGPUnicodeTest.java
rm -f src/org/bouncycastle/openpgp/examples/DSAElGamalKeyRingGenerator.java
......@@ -569,6 +575,12 @@ then
/@RELEASE_NAME@/s//$version/
w
q
%
ed src/org/bouncycastle/openpgp/test/RegressionTest.java <<%
g/new PGPKeyRingTest(),/d
w
q
%
(cd src/org/bouncycastle; javac -d ../../../classes -classpath ../../../classes:../../../src:../../../../jce-jdk11-$base/classes:$JDK11PATH/lib/classes.zip bcpg/*.java bcpg/*/*.java openpgp/*.java )
......
......@@ -53,6 +53,7 @@ find $jdk12src -name "*.java" -exec scripts/usejcecert.sh \{\} \;
(
cd $jdk12src
rm -rf org/bouncycastle/math/ec/rfc8032/test
rm -rf org/bouncycastle/crypto/test/ntru
rm -rf org/bouncycastle/pqc/math/ntru
rm -rf org/bouncycastle/pqc/crypto/ntru
......@@ -96,6 +97,7 @@ find $jdk12src -name "*.java" -exec scripts/usejcecert.sh \{\} \;
rm -rf org/bouncycastle/jce/provider/test/X509LDAP*.java
rm -rf org/bouncycastle/jce/provider/test/MQVTest*.java
rm -rf org/bouncycastle/jce/provider/test/AlgorithmParametersTest.java
rm -rf org/bouncycastle/jce/provider/test/GOST3410KeyPairTest.java
rm -rf org/bouncycastle/jce/spec/ECNamedCurveSpec.java
rm -rf org/bouncycastle/util/encoders/test/*.java
rm -rf org/bouncycastle/x509/PKIXCertPathReviewer.java
......@@ -505,8 +507,11 @@ then
rm -rf src/org/bouncycastle/sasn1
rm -rf src/org/bouncycastle/est
rm -rf src/org/bouncycastle/asn1/test
rm -rf src/org/bouncycastle/gpg/keybox
rm -rf src/org/bouncycastle/gpg/test
rm -f src/org/bouncycastle/openpgp/test/DSA2Test.java
rm -f src/org/bouncycastle/openpgp/test/PGPUnicodeTest.java
rm -f src/org/bouncycastle/openpgp/test/PGPKeyRingTest.java
find src -name AllTests.java -exec rm {} \;
javadoc -windowtitle "$WINDOWTITLE" -doctitle "$DOCTITLE" \
......@@ -528,6 +533,12 @@ then
/@RELEASE_NAME@/s//$version/
w
q
%
ed src/org/bouncycastle/openpgp/test/RegressionTest.java <<%
g/new PGPKeyRingTest(),/d
w
q
%
(cd src/org/bouncycastle; javac -d ../../../classes -classpath ../../../classes:../../../src:../../../../jce-jdk12-$base/classes */*.java */*/*.java)
......
......@@ -31,3 +31,12 @@ else
fi
fi
if [ -f build/artifacts/jdk1.5/jars/bcprov-jdk15on*.jar ]
then
tar cf - prov/src/main/resources/META-INF | (cd build/artifacts/jdk1.5/jars/; tar xf -)
cd build/artifacts/jdk1.5/jars/
mv prov/src/main/resources/META-INF .
jar uf bcprov-jdk15on*.jar META-INF
jar uf bcprov-ext-jdk15on*.jar META-INF
rm -r prov META-INF
fi
......@@ -28,6 +28,7 @@ then
((cd core/src/main/java; tar cf - * ) | (cd $target/src && tar xf -))
((cd core/src/main/javadoc; tar cf - * ) | (cd $target/src && tar xf -))
((cd core/src/main/jdk1.4; tar cf - * ) | (cd $target/src && tar xf -))
((cd core/src/main/jdk1.1; tar cf - org ) | (cd $target/src && tar xf -))
((cd core/src/main/j2me; tar cf - * ) | (cd $target/src && tar xf -))
((cd core/src/test/java; tar cf - * ) | (cd $target/src && tar xf -))
((cd core/src/test/j2me; tar cf - * ) | (cd $target/src && tar xf -))
......@@ -44,6 +45,7 @@ then
rm src/org/bouncycastle/crypto/test/AllTests.java
rm src/org/bouncycastle/crypto/test/SHA3DigestTest.java
rm src/org/bouncycastle/crypto/test/SHAKEDigestTest.java
rm src/org/bouncycastle/crypto/CryptoServicesPermission.java
rm src/org/bouncycastle/util/StreamParser.java
rm src/org/bouncycastle/util/StreamParsingException.java
rm src/org/bouncycastle/asn1/util/Dump.java
......@@ -69,6 +71,7 @@ then
rm src/org/bouncycastle/asn1/test/PublishTrustAnchorsTest.java
rm src/org/bouncycastle/asn1/test/RevokeRequestTest.java
rm -rf src/org/bouncycastle/math/ec/rfc7748/test
rm -rf src/org/bouncycastle/math/ec/rfc8032/test
rm -rf src/org/bouncycastle/math/raw/test
rm -rf src/org/bouncycastle/math/test
rm -rf src/org/bouncycastle/pqc/math/ntru
......@@ -78,6 +81,8 @@ then
rm -rf src/org/bouncycastle/pqc/crypto/*/IndexGenerator*
rm -rf src/org/bouncycastle/pqc/crypto/xmss
rm -rf src/org/bouncycastle/pqc/crypto/test/XMSS*
rm -rf src/org/bouncycastle/gpg/keybox
rm -rf src/org/bouncycastle/gpg/test
rm src/org/bouncycastle/asn1/test/MonetaryValueUnitTest.java
rm src/org/bouncycastle/asn1/test/NameOrPseudonymUnitTest.java
rm src/org/bouncycastle/asn1/test/NetscapeCertTypeTest.java
......
......@@ -21,6 +21,14 @@ public class FilterOutputStream extends OutputStream
public void write(byte[] b, int offset, int length) throws IOException
{
if (b == null)
{
throw new NullPointerException();
}
else if ((offset < 0) || (length < 0) || ((offset + length) > b.length))
{
throw new IndexOutOfBoundsException();
}
for (int i = 0; i < length; i++)
{
write(b[offset + i]);
......
......@@ -2,6 +2,7 @@ package java.math;
import java.util.Random;
import java.util.Stack;
import java.util.Vector;
import org.bouncycastle.util.Arrays;
......@@ -3120,6 +3121,25 @@ public class BigInteger
}
break;
}
case 32:
{
long mask = (1L << 60) - 1;
BigInteger u = this.abs();
int bits = u.bitLength();
Stack S = new Stack();
while (bits > 60)
{
S.push(Long.toString((u.longValue() & mask), 32));
u = u.shiftRight(60);
bits -= 60;
}
sb.append(Long.toString(u.longValue(), 32));
while (!S.empty())
{
appendZeroExtendedString(sb, (String)S.pop(), 12);
}
break;
}
default:
{
BigInteger q = this.abs();
......@@ -3129,34 +3149,20 @@ public class BigInteger
break;
}
// Based on algorithm 1a from chapter 4.4 in Seminumerical Algorithms (Knuth)
// Work out the largest power of 'rdx' that is a positive 64-bit integer
// TODO possibly cache power/exponent against radix?
long limit = Long.MAX_VALUE / rdx;
long power = rdx;
int exponent = 1;
while (power <= limit)
// TODO Could cache the moduli for each radix (soft reference?)
Vector moduli = new Vector();
BigInteger R = BigInteger.valueOf(rdx);
while (R.compareTo(q) <= 0)
{
power *= rdx;
++exponent;
moduli.addElement(R);
R = R.square();
}
BigInteger bigPower = BigInteger.valueOf(power);
int scale = moduli.size();
sb.ensureCapacity(sb.length() + (1 << scale));
Stack S = new Stack();
while (q.compareTo(bigPower) >= 0)
{
BigInteger[] qr = q.divideAndRemainder(bigPower);
S.push(Long.toString(qr[1].longValue(), rdx));
q = qr[0];
}
toString(sb, rdx, moduli, scale, q);
sb.append(Long.toString(q.longValue(), rdx));
while (!S.empty())
{
appendZeroExtendedString(sb, (String)S.pop(), exponent);
}
break;
}
}
......@@ -3164,6 +3170,28 @@ public class BigInteger
return sb.toString();
}
private static void toString(StringBuffer sb, int rdx, Vector moduli, int scale, BigInteger pos)
{
if (pos.bitLength() < 64)
{
String s = Long.toString(pos.longValue(), rdx);
if (sb.length() > 1 || (sb.length() == 1 && sb.charAt(0) != '-'))
{
appendZeroExtendedString(sb, s, 1 << scale);
}
else if (pos.signum() != 0)
{
sb.append(s);
}
return;
}
BigInteger[] qr = pos.divideAndRemainder((BigInteger)moduli.elementAt(--scale));
toString(sb, rdx, moduli, scale, qr[0]);
toString(sb, rdx, moduli, scale, qr[1]);
}
private static void appendZeroExtendedString(StringBuffer sb, String s, int minLength)
{
for (int len = s.length(); len < minLength; ++len)
......
......@@ -2,6 +2,7 @@ package org.bouncycastle.crypto.encodings;
import java.security.SecureRandom;
import org.bouncycastle.crypto.CryptoServicesRegistrar;
import org.bouncycastle.crypto.AsymmetricBlockCipher;
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.crypto.InvalidCipherTextException;
......@@ -127,7 +128,7 @@ public class PKCS1Encoding
kParam = (AsymmetricKeyParameter)param;
if (!kParam.isPrivate() && forEncryption)
{
this.random = new SecureRandom();
this.random = CryptoServicesRegistrar.getSecureRandom();
}
}
......
......@@ -22,9 +22,10 @@ import java.util.Vector;
public class BEROctetString
extends ASN1OctetString
{
private static final int MAX_LENGTH = 1000;
private static final int DEFAULT_LENGTH = 1000;
private ASN1OctetString[] octs;
private final int chunkSize;
private final ASN1OctetString[] octs;
/**
* Convert a vector of octet strings into a single byte string
......@@ -62,7 +63,7 @@ public class BEROctetString
public BEROctetString(
byte[] string)
{
super(string);
this(string, DEFAULT_LENGTH);
}
/**
......@@ -74,9 +75,40 @@ public class BEROctetString
public BEROctetString(
ASN1OctetString[] octs)
{
super(toBytes(octs));
this(octs, DEFAULT_LENGTH);
}
/**
* Create an OCTET-STRING object from a byte[]
* @param string the octets making up the octet string.
* @param chunkSize the number of octets stored in each DER encoded component OCTET STRING.
*/
public BEROctetString(
byte[] string,
int chunkSize)
{
this(string, null, chunkSize);
}
/**
* Multiple {@link ASN1OctetString} data blocks are input,
* the result is <i>constructed form</i>.
*
* @param octs an array of OCTET STRING to construct the BER OCTET STRING from.
* @param chunkSize the number of octets stored in each DER encoded component OCTET STRING.
*/
public BEROctetString(
ASN1OctetString[] octs,
int chunkSize)
{
this(toBytes(octs), octs, chunkSize);
}
private BEROctetString(byte[] string, ASN1OctetString[] octs, int chunkSize)
{
super(string);
this.octs = octs;
this.chunkSize = chunkSize;
}
/**
......@@ -119,17 +151,17 @@ public class BEROctetString
private Vector generateOcts()
{
Vector vec = new Vector();
for (int i = 0; i < string.length; i += MAX_LENGTH)
for (int i = 0; i < string.length; i += chunkSize)
{
int end;
if (i + MAX_LENGTH > string.length)
if (i + chunkSize > string.length)
{
end = string.length;
}
else
{
end = i + MAX_LENGTH;
end = i + chunkSize;
}
byte[] nStr = new byte[end - i];
......
......@@ -95,7 +95,7 @@ public class DERUniversalString
}
catch (IOException e)
{
throw new ASN1ParsingException("internal error encoding BitString");
throw new ASN1ParsingException("internal error encoding UniversalString");
}
byte[] string = bOut.toByteArray();
......
......@@ -32,4 +32,73 @@ public interface BSIObjectIdentifiers
/* 0.4.0.127.0.7.1.1.4.1.6 */
static final ASN1ObjectIdentifier ecdsa_plain_RIPEMD160 = ecdsa_plain_signatures.branch("6");
/** 0.4.0.127.0.7.1 */
static final ASN1ObjectIdentifier algorithm = bsi_de.branch("1");
static final ASN1ObjectIdentifier ecka_eg = id_ecc.branch("5.1");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf = ecka_eg.branch("1");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function SHA-1
* OID: 0.4.0.127.0.7.1.1.5.1.1.1 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA1 = ecka_eg_X963kdf.branch("1");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function SHA224
* OID: 0.4.0.127.0.7.1.1.5.1.1.2 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA224 = ecka_eg_X963kdf.branch("2");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function SHA256
* OID: 0.4.0.127.0.7.1.1.5.1.1.3 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA256 = ecka_eg_X963kdf.branch("3");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function SHA384
* OID: 0.4.0.127.0.7.1.1.5.1.1.4 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA384 = ecka_eg_X963kdf.branch("4");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function SHA512
* OID: 0.4.0.127.0.7.1.1.5.1.1.5 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA512 = ecka_eg_X963kdf.branch("5");
/** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
* with hash function RIPEMD160
* OID: 0.4.0.127.0.7.1.1.5.1.1.6 */
static final ASN1ObjectIdentifier ecka_eg_X963kdf_RIPEMD160 = ecka_eg_X963kdf.branch("6");
/**
* Key Derivation Function for Session Keys
*/
static final ASN1ObjectIdentifier ecka_eg_SessionKDF = ecka_eg.branch("2");
static final ASN1ObjectIdentifier ecka_eg_SessionKDF_3DES = ecka_eg_SessionKDF.branch("1");
static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES128 = ecka_eg_SessionKDF.branch("2");
static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES192 = ecka_eg_SessionKDF.branch("3");
static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES256 = ecka_eg_SessionKDF.branch("4");
/** AES encryption (CBC) and authentication (CMAC)
* OID: 0.4.0.127.0.7.1.x */
//FIXME replace "1" with correct OID
static final ASN1ObjectIdentifier aes_cbc_cmac = algorithm.branch("1");
/** AES encryption (CBC) and authentication (CMAC) with 128 bit
* OID: 0.4.0.127.0.7.1.x.y1 */
//FIXME replace "1" with correct OID
static final ASN1ObjectIdentifier id_aes128_CBC_CMAC = aes_cbc_cmac.branch("1");
/** AES encryption (CBC) and authentication (CMAC) with 192 bit
* OID: 0.4.0.127.0.7.1.x.y2 */
//FIXME replace "1" with correct OID
static final ASN1ObjectIdentifier id_aes192_CBC_CMAC = aes_cbc_cmac.branch("1");
/** AES encryption (CBC) and authentication (CMAC) with 256 bit
* OID: 0.4.0.127.0.7.1.x.y3 */
//FIXME replace "1" with correct OID
static final ASN1ObjectIdentifier id_aes256_CBC_CMAC = aes_cbc_cmac.branch("1");
}
package org.bouncycastle.asn1.cmp;
import java.math.BigInteger;
import org.bouncycastle.asn1.ASN1Integer;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
......@@ -41,6 +43,36 @@ public class PollReqContent
this(new DERSequence(new DERSequence(certReqId)));
}
/**
* Create a pollReqContent for a multiple certReqIds.
*
* @param certReqIds the certificate request IDs.
*/
public PollReqContent(ASN1Integer[] certReqIds)
{
this(new DERSequence(intsToSequence(certReqIds)));
}
/**
* Create a pollReqContent for a single certReqId.
*
* @param certReqId the certificate request ID.
*/
public PollReqContent(BigInteger certReqId)
{
this(new ASN1Integer(certReqId));
}
/**
* Create a pollReqContent for a multiple certReqIds.
*
* @param certReqIds the certificate request IDs.
*/
public PollReqContent(BigInteger[] certReqIds)
{
this(intsToASN1(certReqIds));
}
public ASN1Integer[][] getCertReqIds()
{
ASN1Integer[][] result = new ASN1Integer[content.size()][];
......@@ -53,9 +85,22 @@ public class PollReqContent
return result;
}
public BigInteger[] getCertReqIdValues()
{
BigInteger[] result = new BigInteger[content.size()];
for (int i = 0; i != result.length; i++)
{
result[i] = ASN1Integer.getInstance(
ASN1Sequence.getInstance(content.getObjectAt(i)).getObjectAt(0)).getValue();
}
return result;
}
private static ASN1Integer[] sequenceToASN1IntegerArray(ASN1Sequence seq)
{
ASN1Integer[] result = new ASN1Integer[seq.size()];
ASN1Integer[] result = new ASN1Integer[seq.size()];
for (int i = 0; i != result.length; i++)
{
......@@ -65,6 +110,30 @@ public class PollReqContent
return result;
}
private static DERSequence[] intsToSequence(ASN1Integer[] ids)
{
DERSequence[] result = new DERSequence[ids.length];
for (int i = 0; i != result.length; i++)
{
result[i] = new DERSequence(ids[i]);
}
return result;
}
private static ASN1Integer[] intsToASN1(BigInteger[] ids)
{
ASN1Integer[] result = new ASN1Integer[ids.length];
for (int i = 0; i != result.length; i++)
{
result[i] = new ASN1Integer(ids[i]);
}
return result;
}
/**
* <pre>
* PollReqContent ::= SEQUENCE OF SEQUENCE {
......
......@@ -26,4 +26,11 @@ public interface CRMFObjectIdentifiers
/** 1.2.840.113549.1.9.16.1,21 */
static final ASN1ObjectIdentifier id_ct_encKeyWithID = PKCSObjectIdentifiers.id_ct.branch("21");
/** 1.3.6.1.5.5.7.6 */
static final ASN1ObjectIdentifier id_alg = id_pkix.branch("6");
static final ASN1ObjectIdentifier id_dh_sig_hmac_sha1 = id_alg.branch("3");
static final ASN1ObjectIdentifier id_alg_dh_pop = id_alg.branch("4");
}