System.out.println("Curve in use : " + curve.toString()); System.out.println(ecdsa.getPublicKey().toString()); System.out.println("ToSign : "+toSign + " ("+toHex(signedBytes)+")"); System.out.println(sfs.toString()); System.out.println("Restored to: "); ECDSA ecdsa2 = new ECDSA(sfs.getSubset(curve.name()), curve); System.out.println(ecdsa2.getPublicKey()); System.out.println("Verify? : "+ecdsa2.verify(sig, signedBytes));
kf = KeyFactory.getInstance("EC"); kg.initialize(this.spec); key = selftest(kg, kf, modulusSize); } catch(Throwable e) { kf = KeyFactory.getInstance("EC", JceLoader.BouncyCastle); kg.initialize(this.spec); key = selftest(kg, kf, modulusSize); selftest_sign(key, sig); } catch(Throwable e) { key = kg.generateKeyPair(); sig = Signature.getInstance(defaultHashAlgorithm, JceLoader.BouncyCastle); selftest_sign(key, sig);
SimpleFieldSet ecdsaSFS = fs.subset("ecdsa"); if(ecdsaSFS != null) ecdsaP256 = new ECDSA(ecdsaSFS.subset(ECDSA.Curves.P256.name()), Curves.P256); } catch (FSParseException e) { Logger.error(this, "Caught "+e, e);
/** * Export the peer's noderef as a SimpleFieldSet */ public synchronized SimpleFieldSet exportFieldSet() { SimpleFieldSet fs = new SimpleFieldSet(true); if(getLastGoodVersion() != null) fs.putSingle("lastGoodVersion", lastGoodVersion); for(int i = 0; i < nominalPeer.size(); i++) fs.putAppend("physical.udp", nominalPeer.get(i).toString()); fs.put("auth.negTypes", negTypes); fs.putSingle("identity", getIdentityString()); fs.put("location", getLocation()); fs.put("testnet", testnetEnabled); fs.putSingle("version", version); fs.put("ecdsa", ECDSA.Curves.P256.getSFS(peerECDSAPubKey)); if(myARK != null) { // Decrement it because we keep the number we would like to fetch, not the last one fetched. fs.put("ark.number", myARK.suggestedEdition - 1); fs.putSingle("ark.pubURI", myARK.getBaseSSK().toString(false, false)); } fs.put("opennet", isOpennetForNoderef()); fs.put("seed", isSeed()); fs.put("totalInput", getTotalInputBytes()); fs.put("totalOutput", getTotalOutputBytes()); return fs; }
/** * Returns an SFS containing: * - the private key * - the public key * - the name of the curve in use * * It should only be used in NodeCrypto * @param includePrivate - include the (secret) private key * @return SimpleFieldSet */ public SimpleFieldSet asFieldSet(boolean includePrivate) { SimpleFieldSet fs = new SimpleFieldSet(true); SimpleFieldSet fsCurve = new SimpleFieldSet(true); fsCurve.putSingle("pub", Base64.encode(key.getPublic().getEncoded())); if(includePrivate) fsCurve.putSingle("pri", Base64.encode(key.getPrivate().getEncoded())); fs.put(curve.name(), fsCurve); return fs; } }
public SimpleFieldSet getSFS(ECPublicKey pub) { SimpleFieldSet ecdsaSFS = new SimpleFieldSet(true); SimpleFieldSet curveSFS = new SimpleFieldSet(true); curveSFS.putSingle("pub", Base64.encode(pub.getEncoded())); ecdsaSFS.put(name(), curveSFS); return ecdsaSFS; }
public void testAsFieldSet() throws FSParseException { SimpleFieldSet privSFS = ecdsa.asFieldSet(true); assertNotNull(privSFS.getSubset(curveToTest.name())); assertNotNull(privSFS.get(curveToTest.name()+".pub")); assertNotNull(privSFS.get(curveToTest.name()+".pri")); // Ensure we don't leak the privkey when we don't intend to SimpleFieldSet pubSFS = ecdsa.asFieldSet(false); assertNotNull(pubSFS.getSubset(curveToTest.name())); assertNotNull(pubSFS.get(curveToTest.name()+".pub")); assertNull(pubSFS.get(curveToTest.name()+".pri")); }
public void testSerializeUnserialize() throws FSParseException { SimpleFieldSet sfs = ecdsa.asFieldSet(true); ECDSA ecdsa2 = new ECDSA(sfs.getSubset(curveToTest.name()), curveToTest); assertEquals(ecdsa.getPublicKey(), ecdsa2.getPublicKey()); }