forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p.zzz.ecdsa' (head 1dd9522809f801ca68dd331cfba1c5c914dc1481)
to branch 'i2p.i2p' (head a1c2ba4663abc7470f427c6a14854707d58b486a) Prop from branch i2p.i2p.zzz.ecdsa: * Build: - Generate su3 file in release target - Add zzz's new RSA 4096 pubkey cert for updates - Fix checkcerts.sh * Console: Move advanced setting to HelperBase * DSAEngine changes: - Implement raw sign/verify for other SigTypes - Add sign/verify methods using Java keys * ECDSA Support: - Add ECConstants which looks for named curves and falls back to explicitly defining the curves - Add support for ECDSA to SigType, DSAEngine and KeyGenerator - Attempt to add BC as a Provider - genSpec: fallback to BC provider * EepGet: - Fix non-proxied PartialEepGet - Prevent non-proxied eepget for an I2P host * KeyGenerator changes: - Generate key pairs for all supported SigTypes - KeyPairGen: Catch ProviderException, fallback to BC provider - Add KeyGenerator main() tests * KeyRing and DirKeyRing added: simple backend for storing X.509 certs * KeyStoreUtil added: - Consolidate KeyStore code from SSLEepGet, I2CPSSLSocketFactory, SSLClientListenerRunner, and RouterConsoleRunner into new KeyStoreUtil and CertUtil classes in net.i2p.crypto (ticket #744) - Change default to RSA 2048 (ticket #1017) - Set file modes on written keys - Overwrite check in createKeys() - New getCert(), getKey() - Extend keygen max wait - Read back private key to verify after keygen - Validate cert after reading from file - Validate CN in cert - Specify cert signature algorithm when generating keys * NativeBigInteger: Tweak to prevent early context instantiation * RSA support added: constants, parameters, sig types, support in DSAEngine, KeyGenerator, SigUtil * SHA1Hash: Add no-arg constructor * SigType changes: - Add parameters (curve specs) to SigTypes - Add getHashInstance() - Add RSA, fix ECDSA - Renumber, rename, comment out types that are too short. * SigUtil added: - Converters from Java formats (ASN.1, X.509, PKCS#8) to I2P formats for Signatures and SigningKeys - Move ASN.1 converter from DSAEngine to SigUtil, generalize for variable length, add support for longer sequences, add more sanity checks, add more exceptions - Move I2P-to-Java DSA key conversion from DSAEngine to SigUtil - Add Java-to-I2P DSA key conversion - Add Java key import - New split() and combine() methods * SSLEepGet: Move all certificates to certificates/ssl, in preparation for other certificate uses by SU3File * SU3File changes: - Support all SigTypes - Implement keygen - Readahead to get sigtype on verify, as we need the hash type - Enum for content type - Add unknown content type, make default - Fix NPE if private key not found or sign fails - Store generated keys in keystore, and get private key from keystore for signing, in Java format - Use Java keys to sign and verify so we don't lose the key parameters in the conversion to I2P keys - Type checking of Java private key vs. type when signing - Use certs instead of public keys for verification - Fix arg processing - Improve validate-without-extract - New extract command - Change static fields to avoid early context init - Reduce PRNG buffer size for faster signing * Update: Preliminary work for su3 router updates: - New ROUTER_SIGNED_SU3 UpdateType - Add support for torrent and HTTP - Refactor UpdateRunners to return actual UpdateType - Deal with signed/su3 conflicts - Verify and extract su3 files. - Stub out support for clearnet su3 updating - New config for proxying news, separate from proxying update - PartialEepGet and SSLEepGet tweaks to support clearnet update - Remove proxy, key, and url config from /configupdate - More URI checks in UpdateRunner - Add https support for news fetch - Add su3 mime type - Reset found version in update loop so we don't fetch from the next host too. - Prevent NPE on version after SSL fetch
This commit is contained in:
@ -121,6 +121,7 @@
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<env key="JAVA_HOME" value="${java.home}" />
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
@ -167,6 +168,7 @@
|
||||
|
||||
<target name="bundle-news" unless="no.bundle">
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<env key="JAVA_HOME" value="${java.home}" />
|
||||
<arg value="./bundle-messages-news.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
|
@ -15,6 +15,10 @@ TMPFILE=build/javafiles-news.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if ! $(which javac > /dev/null 2>&1); then
|
||||
export JAVAC=${JAVA_HOME}/../bin/javac
|
||||
fi
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
POUPDATE=1
|
||||
|
@ -15,6 +15,10 @@ TMPFILE=build/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if ! $(which javac > /dev/null 2>&1); then
|
||||
export JAVAC=${JAVA_HOME}/../bin/javac
|
||||
fi
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
POUPDATE=1
|
||||
|
@ -47,7 +47,8 @@ public class HomeHelper extends HelperBase {
|
||||
"Ident " + _x("Microblog") + S + _x("Your premier microblogging service on I2P") + S + "http://id3nt.i2p/" + S + I + "ident_icon_blue.png" + S +
|
||||
_x("Javadocs") + S + _x("Technical documentation") + S + "http://i2p-javadocs.i2p/" + S + I + "education.png" + S +
|
||||
//_x("Key Server") + S + _x("OpenPGP Keyserver") + S + "http://keys.i2p/" + S + I + "education.png" + S +
|
||||
_x("killyourtv.i2p") + S + _x("Debian and Tahoe-LAFS repositories") + S + "http://killyourtv.i2p/" + S + I + "eepsite.png" + S +
|
||||
"killyourtv.i2p" + S + _x("Debian and Tahoe-LAFS repositories") + S + "http://killyourtv.i2p/" + S + I + "eepsite.png" + S +
|
||||
"open4you.i2p" + S + S + "http://open4you.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Pastebin") + S + _x("I2P Pastebin") + S + "http://pastethis.i2p/" + S + I + "eepsite.png" + S +
|
||||
"Planet I2P" + S + _x("I2P News") + S + "http://planet.i2p/" + S + I + "eepsite.png" + S +
|
||||
_x("Plugins") + S + _x("Add-on directory") + S + "http://plugins.i2p/" + S + I + "plugin.png" + S +
|
||||
|
@ -0,0 +1,37 @@
|
||||
package net.i2p.router.web;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.data.RouterAddress;
|
||||
import net.i2p.data.RouterInfo;
|
||||
import net.i2p.data.Signature;
|
||||
|
||||
/**
|
||||
* Sign a statement about this router.
|
||||
* @since 0.9.8
|
||||
*/
|
||||
public class ProofHelper extends HelperBase {
|
||||
|
||||
public String getProof() {
|
||||
StringBuilder buf = new StringBuilder(512);
|
||||
RouterInfo us = _context.router().getRouterInfo();
|
||||
buf.append("Hash: ").append(us.getIdentity().calculateHash().toBase64()).append('\n');
|
||||
//buf.append("Ident: ").append(us.getIdentity().toBase64()).append('\n');
|
||||
for (RouterAddress addr : us.getAddresses()) {
|
||||
buf.append(addr.getTransportStyle()).append(": ").append(addr.getHost()).append('\n');
|
||||
}
|
||||
buf.append("Caps: ").append(us.getCapabilities()).append('\n');
|
||||
buf.append("Date: ").append(new Date()); // no trailing newline
|
||||
String msg = buf.toString();
|
||||
byte[] data = DataHelper.getUTF8(msg);
|
||||
Signature sig = _context.dsa().sign(data, _context.keyManager().getSigningPrivateKey());
|
||||
buf.setLength(0);
|
||||
buf.append("---BEGIN I2P SIGNED MESSAGE---\n");
|
||||
buf.append(msg);
|
||||
buf.append("\n---BEGIN I2P SIGNATURE---\n");
|
||||
buf.append(sig.toBase64());
|
||||
buf.append("\n---END I2P SIGNATURE---");
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user