You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(119) |
Oct
(111) |
Nov
(238) |
Dec
(395) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(239) |
Feb
(59) |
Mar
(354) |
Apr
(489) |
May
(23) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(5) |
Jun
(2) |
Jul
|
Aug
|
Sep
(3) |
Oct
(14) |
Nov
(17) |
Dec
(9) |
| 2007 |
Jan
(4) |
Feb
(3) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(7) |
May
(3) |
Jun
(6) |
Jul
(4) |
Aug
(3) |
Sep
(15) |
Oct
(13) |
Nov
(35) |
Dec
(40) |
| 2009 |
Jan
(19) |
Feb
(21) |
Mar
(16) |
Apr
(18) |
May
(36) |
Jun
(20) |
Jul
(32) |
Aug
(11) |
Sep
(3) |
Oct
(2) |
Nov
(2) |
Dec
(13) |
| 2010 |
Jan
(5) |
Feb
(5) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(3) |
| 2012 |
Jan
(3) |
Feb
(3) |
Mar
(1) |
Apr
(4) |
May
(8) |
Jun
(4) |
Jul
(9) |
Aug
(2) |
Sep
(8) |
Oct
(3) |
Nov
(8) |
Dec
(4) |
| 2013 |
Jan
(2) |
Feb
(1) |
Mar
(5) |
Apr
(6) |
May
(10) |
Jun
(5) |
Jul
(6) |
Aug
(7) |
Sep
(5) |
Oct
(2) |
Nov
(4) |
Dec
(4) |
| 2014 |
Jan
(13) |
Feb
(4) |
Mar
(7) |
Apr
(9) |
May
(20) |
Jun
(13) |
Jul
(10) |
Aug
(3) |
Sep
(5) |
Oct
(2) |
Nov
(2) |
Dec
(2) |
| 2015 |
Jan
(3) |
Feb
(3) |
Mar
(5) |
Apr
(4) |
May
(3) |
Jun
(2) |
Jul
(4) |
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(3) |
| 2016 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
(4) |
Sep
(3) |
Oct
(3) |
Nov
(4) |
Dec
(2) |
| 2017 |
Jan
|
Feb
(2) |
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <pe...@us...> - 2003-12-17 23:53:00
|
Update of /cvsroot/neuclear/neuclear-pay/src/java/org/neuclear/asset/receiver/servlet
In directory sc8-pr-cvs1:/tmp/cvs-serv16936/src/java/org/neuclear/asset/receiver/servlet
Modified Files:
AssetControllerServlet.java
Log Message:
Added SignatureRequestServlet which is abstract and can be used for building SignatureRequests for various applications.
Index: AssetControllerServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-pay/src/java/org/neuclear/asset/receiver/servlet/AssetControllerServlet.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** AssetControllerServlet.java 15 Dec 2003 23:31:54 -0000 1.6
--- AssetControllerServlet.java 17 Dec 2003 23:52:57 -0000 1.7
***************
*** 8,11 ****
--- 8,12 ----
import org.neuclear.commons.crypto.signers.TestCaseSigner;
import org.neuclear.commons.sql.JNDIConnectionSource;
+ import org.neuclear.commons.servlets.ServletTools;
import org.neuclear.id.resolver.NSResolver;
import org.neuclear.ledger.implementations.SQLLedger;
***************
*** 35,38 ****
--- 36,42 ----
$Id$
$Log$
+ Revision 1.7 2003/12/17 23:52:57 pelle
+ Added SignatureRequestServlet which is abstract and can be used for building SignatureRequests for various applications.
+
Revision 1.6 2003/12/15 23:31:54 pelle
added ServletTools.getInitParam() which first tries the ServletConfig, then the context config.
***************
*** 81,88 ****
public final void init(final ServletConfig config) throws ServletException {
super.init(config);
! datasource = config.getInitParameter("datasource");
AssetGlobals.registerReaders();
TransferGlobals.registerReaders();
- INSTANCE = this;
try {
asset = (Asset) NSResolver.resolveIdentity(getServiceid());
--- 85,91 ----
public final void init(final ServletConfig config) throws ServletException {
super.init(config);
! datasource = ServletTools.getInitParam("datasource",config);
AssetGlobals.registerReaders();
TransferGlobals.registerReaders();
try {
asset = (Asset) NSResolver.resolveIdentity(getServiceid());
***************
*** 115,124 ****
}
- public static AssetControllerServlet getInstance() {
- return INSTANCE;
- }
-
private Asset asset;
private String datasource;
- private static AssetControllerServlet INSTANCE;
}
--- 118,122 ----
|
|
From: <pe...@us...> - 2003-12-17 23:52:04
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample
In directory sc8-pr-cvs1:/tmp/cvs-serv16747/src/java/org/neuclear/id/sample
Modified Files:
SendMessageServlet.java
Added Files:
MessageSenderSignatureRequestServlet.java
Log Message:
Added SignatureRequestServlet which is abstract and can be used for building SignatureRequests for various applications.
--- NEW FILE: MessageSenderSignatureRequestServlet.java ---
package org.neuclear.id.sample;
import org.neuclear.signers.servlet.SignatureRequestServlet;
import org.neuclear.id.builders.NamedObjectBuilder;
import org.neuclear.id.builders.SignedMessageBuilder;
import org.neuclear.id.Identity;
import org.neuclear.commons.NeuClearException;
import org.neuclear.commons.Utility;
import javax.servlet.http.HttpServletRequest;
/*
NeuClear Distributed Transaction Clearing Platform
(C) 2003 Pelle Braendgaard
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
$Id: MessageSenderSignatureRequestServlet.java,v 1.1 2003/12/17 23:52:01 pelle Exp $
$Log: MessageSenderSignatureRequestServlet.java,v $
Revision 1.1 2003/12/17 23:52:01 pelle
Added SignatureRequestServlet which is abstract and can be used for building SignatureRequests for various applications.
*/
/**
* User: pelleb
* Date: Dec 17, 2003
* Time: 5:58:01 PM
*/
public class MessageSenderSignatureRequestServlet extends SignatureRequestServlet{
protected NamedObjectBuilder createBuilder(HttpServletRequest request) throws NeuClearException {
String recipient=Utility.denullString(request.getParameter("recipient"));
String subject=Utility.denullString(request.getParameter("subject"));
String message=Utility.denullString(request.getParameter("message"));
return new SignedMessageBuilder((Identity) request.getUserPrincipal(),recipient,subject,message);
}
}
Index: SendMessageServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample/SendMessageServlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SendMessageServlet.java 16 Dec 2003 21:08:37 -0000 1.2
--- SendMessageServlet.java 17 Dec 2003 23:52:01 -0000 1.3
***************
*** 33,40 ****
Identity userns=(Identity) request.getUserPrincipal();
- String recipient=Utility.denullString(request.getParameter("recipient"));
- String subject=Utility.denullString(request.getParameter("subject"));
- String message=Utility.denullString(request.getParameter("message"));
try {
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
--- 33,40 ----
Identity userns=(Identity) request.getUserPrincipal();
try {
+ String recipient=Utility.denullString(request.getParameter("recipient"));
+ String subject=Utility.denullString(request.getParameter("subject"));
+ String message=Utility.denullString(request.getParameter("message"));
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
|
|
From: <pe...@us...> - 2003-12-17 18:02:47
|
Update of /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id/jce
In directory sc8-pr-cvs1:/tmp/cvs-serv6568/src/test/org/neuclear/id/jce
Modified Files:
NeuClearJCETest.java
Log Message:
NeuClear JCE Certificates now work with KeyStore.
We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
Index: NeuClearJCETest.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id/jce/NeuClearJCETest.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** NeuClearJCETest.java 17 Dec 2003 12:45:57 -0000 1.7
--- NeuClearJCETest.java 17 Dec 2003 18:02:44 -0000 1.8
***************
*** 39,42 ****
--- 39,46 ----
$Id$
$Log$
+ Revision 1.8 2003/12/17 18:02:44 pelle
+ NeuClear JCE Certificates now work with KeyStore.
+ We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
+
Revision 1.7 2003/12/17 12:45:57 pelle
NeuClear JCE Certificates now work with KeyStore.
***************
*** 131,135 ****
assertEquals(eve.getPublicKey(),ks.getCertificate("neu://eve@test").getPublicKey());
assertEquals(kp.getPrivate(),ks.getKey("neu://eve@test","neuclear".toCharArray()));
!
//Lets write it
File ksfile=new File("target/testdata/keystores/testneuclearcert.jks");
--- 135,146 ----
assertEquals(eve.getPublicKey(),ks.getCertificate("neu://eve@test").getPublicKey());
assertEquals(kp.getPrivate(),ks.getKey("neu://eve@test","neuclear".toCharArray()));
! assertEquals(ks.getCertificateAlias(eve.getCertificate()),"neu://eve@test");
! try {
! ks.getCertificate("neu://eve@test").verify(signer.getPublicKey("neu://test"));;
! } catch (InvalidKeyException e) {
! assertTrue("Invalid Key",false);
! } catch (SignatureException e) {
! assertTrue("Invalid Signature",false);
! }
//Lets write it
File ksfile=new File("target/testdata/keystores/testneuclearcert.jks");
***************
*** 158,161 ****
--- 169,180 ----
assertEquals(kp.getPrivate(),ks2.getKey("neu://eve@test","neuclear".toCharArray()));
+ assertEquals(ks2.getCertificateAlias(eve.getCertificate()),"neu://eve@test");
+ try {
+ ks2.getCertificate("neu://eve@test").verify(signer.getPublicKey("neu://test"));;
+ } catch (InvalidKeyException e) {
+ assertTrue("Invalid Key",false);
+ } catch (SignatureException e) {
+ assertTrue("Invalid Signature",false);
+ }
//final AuthenticationTicketBuilder authb = new AuthenticationTicketBuilder("neu://eve@test", "neu://test", "http://users.neuclear.org:8080");
//authb.sign(sig2);
|
|
From: <pe...@us...> - 2003-12-17 12:46:00
|
Update of /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id/jce
In directory sc8-pr-cvs1:/tmp/cvs-serv455/src/test/org/neuclear/id/jce
Modified Files:
NeuClearJCETest.java
Log Message:
NeuClear JCE Certificates now work with KeyStore.
We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
Index: NeuClearJCETest.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/test/org/neuclear/id/jce/NeuClearJCETest.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** NeuClearJCETest.java 10 Dec 2003 23:58:52 -0000 1.6
--- NeuClearJCETest.java 17 Dec 2003 12:45:57 -0000 1.7
***************
*** 11,14 ****
--- 11,17 ----
import java.io.IOException;
+ import java.io.File;
+ import java.io.FileOutputStream;
+ import java.io.FileInputStream;
import java.security.*;
import java.security.cert.Certificate;
***************
*** 36,39 ****
--- 39,46 ----
$Id$
$Log$
+ Revision 1.7 2003/12/17 12:45:57 pelle
+ NeuClear JCE Certificates now work with KeyStore.
+ We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
+
Revision 1.6 2003/12/10 23:58:52 pelle
Did some cleaning up in the builders
***************
*** 104,111 ****
}
! public final void testStoreKey() throws NeuClearException, XMLException, NoSuchProviderException, NoSuchAlgorithmException, KeyStoreException, IOException, CertificateException {
! final KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC");
final KeyStore ks = KeyStore.getInstance("jks", "SUN");
ks.load(null, null);
kpg.initialize(512);
final KeyPair kp = kpg.generateKeyPair();
--- 111,119 ----
}
! public final void testStoreKey() throws NeuClearException, XMLException, NoSuchProviderException, NoSuchAlgorithmException, KeyStoreException, IOException, CertificateException, UnrecoverableKeyException {
! final KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
final KeyStore ks = KeyStore.getInstance("jks", "SUN");
ks.load(null, null);
+
kpg.initialize(512);
final KeyPair kp = kpg.generateKeyPair();
***************
*** 115,120 ****
ks.setKeyEntry("neu://eve@test", kp.getPrivate(), "neuclear".toCharArray(), eve.getCertificateChain());
! final AuthenticationTicketBuilder authb = new AuthenticationTicketBuilder("neu://eve@test", "neu://test", "http://users.neuclear.org:8080");
//authb.sign(sig2);
--- 123,162 ----
ks.setKeyEntry("neu://eve@test", kp.getPrivate(), "neuclear".toCharArray(), eve.getCertificateChain());
+ assertTrue(ks.containsAlias("neu://eve@test"));
+ // assertTrue(ks.isCertificateEntry("neu://eve@test"));
+ assertTrue(ks.isKeyEntry("neu://eve@test"));
+ assertNotNull(ks.getCertificate("neu://eve@test"));
+ assertNotNull(ks.getCertificate("neu://eve@test").getPublicKey());
+ assertEquals(eve.getCertificate(),ks.getCertificate("neu://eve@test"));
+ assertEquals(eve.getPublicKey(),ks.getCertificate("neu://eve@test").getPublicKey());
+ assertEquals(kp.getPrivate(),ks.getKey("neu://eve@test","neuclear".toCharArray()));
! //Lets write it
! File ksfile=new File("target/testdata/keystores/testneuclearcert.jks");
! ksfile.getParentFile().mkdirs();
! try {
! ks.store(new FileOutputStream(ksfile),"neuclear".toCharArray());
! } catch (Exception e) {
! e.printStackTrace();
! assertTrue("Couldnt write file",false);
! }
! final KeyStore ks2 = KeyStore.getInstance("jks", "SUN");
! try {
! ks2.load(new FileInputStream(ksfile), "neuclear".toCharArray());
! } catch (Exception e) {
! e.printStackTrace();
! assertTrue("Couldnt Read File",false);
! }
!
! assertTrue(ks2.containsAlias("neu://eve@test"));
! // assertTrue(ks2.isCertificateEntry("neu://eve@test"));
! assertTrue(ks2.isKeyEntry("neu://eve@test"));
! assertNotNull(ks2.getCertificate("neu://eve@test"));
! assertNotNull(ks2.getCertificate("neu://eve@test").getPublicKey());
! assertEquals(eve.getCertificate(),ks2.getCertificate("neu://eve@test"));
! assertEquals(eve.getPublicKey(),ks2.getCertificate("neu://eve@test").getPublicKey());
! assertEquals(kp.getPrivate(),ks2.getKey("neu://eve@test","neuclear".toCharArray()));
!
! //final AuthenticationTicketBuilder authb = new AuthenticationTicketBuilder("neu://eve@test", "neu://test", "http://users.neuclear.org:8080");
//authb.sign(sig2);
|
|
From: <pe...@us...> - 2003-12-17 12:46:00
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv455/src/java/org/neuclear/tests
Modified Files:
AbstractSigningTest.java
Log Message:
NeuClear JCE Certificates now work with KeyStore.
We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
Index: AbstractSigningTest.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/tests/AbstractSigningTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** AbstractSigningTest.java 22 Nov 2003 00:23:47 -0000 1.4
--- AbstractSigningTest.java 17 Dec 2003 12:45:57 -0000 1.5
***************
*** 31,34 ****
--- 31,38 ----
$Id$
$Log$
+ Revision 1.5 2003/12/17 12:45:57 pelle
+ NeuClear JCE Certificates now work with KeyStore.
+ We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
+
Revision 1.4 2003/11/22 00:23:47 pelle
All unit tests in commons, id and xmlsec now work.
***************
*** 63,68 ****
--- 67,77 ----
CryptoTools.ensureProvider();
signer = new TestCaseSigner();
+ assertNotNull(signer);
+ assertNotNull(signer.getPublicKey("neu://bob@test"));
+
alice = NSResolver.resolveIdentity("neu://alice@test");
+ assertNotNull(alice);
bob = NSResolver.resolveIdentity("neu://bob@test");
+ assertNotNull(bob);
}
|
|
From: <pe...@us...> - 2003-12-17 12:46:00
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id
In directory sc8-pr-cvs1:/tmp/cvs-serv455/src/java/org/neuclear/id
Modified Files:
Identity.java
Log Message:
NeuClear JCE Certificates now work with KeyStore.
We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
Index: Identity.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/Identity.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** Identity.java 16 Dec 2003 15:05:00 -0000 1.24
--- Identity.java 17 Dec 2003 12:45:57 -0000 1.25
***************
*** 2,5 ****
--- 2,9 ----
* $Id$
* $Log$
+ * Revision 1.25 2003/12/17 12:45:57 pelle
+ * NeuClear JCE Certificates now work with KeyStore.
+ * We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
+ *
* Revision 1.24 2003/12/16 15:05:00 pelle
* Added SignedMessage contract for signing simple textual contracts.
***************
*** 373,377 ****
public final java.security.cert.Certificate getCertificate() {
! return new NeuClearCertificate();
}
--- 377,381 ----
public final java.security.cert.Certificate getCertificate() {
! return new NeuClearCertificate(this);
}
***************
*** 398,417 ****
public final java.security.cert.Certificate[] getCertificateChain() {
! final ArrayList certs = new ArrayList(3);
! Identity id = this;
! while (id != null) {
! certs.add(id.getCertificate());
! id = id.getSignatory();
! }
! certs.add(NEUROOT.getCertificate());
! certs.trimToSize();
! final Certificate[] cert = new Certificate[certs.size()];
! final Iterator iter = certs.iterator();
! int i = 0;
! while (iter.hasNext()) {
! final Certificate certificate = (java.security.cert.Certificate) iter.next();
! cert[i++] = certificate;
! }
! return cert;
}
--- 402,422 ----
public final java.security.cert.Certificate[] getCertificateChain() {
! return new Certificate[]{getCertificate()};
! // final ArrayList certs = new ArrayList(3);
! // Identity id = this;
! // while (id != null) {
! // certs.add(id.getCertificate());
! // id = id.getSignatory();
! // }
! // certs.add(NEUROOT.getCertificate());
! // certs.trimToSize();
! // final Certificate[] cert = new Certificate[certs.size()];
! // final Iterator iter = certs.iterator();
! // int i = 0;
! // while (iter.hasNext()) {
! // final Certificate certificate = (java.security.cert.Certificate) iter.next();
! // cert[i++] = certificate;
! // }
! // return cert;
}
***************
*** 426,431 ****
private final class NeuClearCertificate extends Certificate {
! public NeuClearCertificate() {
super("NeuClear");
}
--- 431,437 ----
private final class NeuClearCertificate extends Certificate {
! public NeuClearCertificate(Identity id) {
super("NeuClear");
+ this.id=id;
}
***************
*** 439,443 ****
*/
public final byte[] getEncoded() throws CertificateEncodingException {
! return getEncoded();
}
--- 445,449 ----
*/
public final byte[] getEncoded() throws CertificateEncodingException {
! return id.getEncoded().getBytes();
}
***************
*** 474,478 ****
return getName();
}
!
}
--- 480,484 ----
return getName();
}
! private final Identity id;
}
|
|
From: <pe...@us...> - 2003-12-17 12:46:00
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/jce
In directory sc8-pr-cvs1:/tmp/cvs-serv455/src/java/org/neuclear/id/jce
Modified Files:
NeuClearCertificateFactory.java
Log Message:
NeuClear JCE Certificates now work with KeyStore.
We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
Index: NeuClearCertificateFactory.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/jce/NeuClearCertificateFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** NeuClearCertificateFactory.java 21 Nov 2003 04:45:11 -0000 1.7
--- NeuClearCertificateFactory.java 17 Dec 2003 12:45:57 -0000 1.8
***************
*** 35,38 ****
--- 35,42 ----
$Id$
$Log$
+ Revision 1.8 2003/12/17 12:45:57 pelle
+ NeuClear JCE Certificates now work with KeyStore.
+ We can now create JCE certificates based on NeuClear Identity's and store them in a keystore.
+
Revision 1.7 2003/11/21 04:45:11 pelle
EncryptedFileStore now works. It uses the PBECipher with DES3 afair.
***************
*** 85,104 ****
//Identity id=(Identity) VerifyingReader.getInstance().read(inputStream);
final BufferedReader d = new BufferedReader(new InputStreamReader(inputStream));
! if (d.ready()) {
! final String name = d.readLine();
! if (name==null)
! throw new CertificateEncodingException("Certificate is empty");
! if (!NSTools.isValidName(name))
! throw new CertificateParsingException("Invalid format");
! Identity identity = null;
! identity = NSResolver.resolveIdentity(name);
! if (identity==null)
! throw new CertificateException("Invalid Certificate");
! return identity.getCertificate();
! }
! return null;
} catch (NeuClearException e) {
throw new CertificateException("NeuClear: Problem reading Certificate:"+e.getMessage());
! } catch (IOException e) {
throw new CertificateException("NeuClear: Problem reading Certificate:"+e.getMessage());
}
--- 89,96 ----
//Identity id=(Identity) VerifyingReader.getInstance().read(inputStream);
final BufferedReader d = new BufferedReader(new InputStreamReader(inputStream));
! return ((Identity)VerifyingReader.getInstance().read(inputStream)).getCertificate();
} catch (NeuClearException e) {
throw new CertificateException("NeuClear: Problem reading Certificate:"+e.getMessage());
! } catch (XMLException e) {
throw new CertificateException("NeuClear: Problem reading Certificate:"+e.getMessage());
}
|
|
From: <pe...@us...> - 2003-12-16 23:44:16
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/signers/servlet
In directory sc8-pr-cvs1:/tmp/cvs-serv4771/src/java/org/neuclear/signers/servlet
Modified Files:
SigningServlet.java
Log Message:
End of work day clean up
Index: SigningServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/signers/servlet/SigningServlet.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** SigningServlet.java 16 Dec 2003 23:17:07 -0000 1.24
--- SigningServlet.java 16 Dec 2003 23:44:10 -0000 1.25
***************
*** 2,5 ****
--- 2,8 ----
* $Id$
* $Log$
+ * Revision 1.25 2003/12/16 23:44:10 pelle
+ * End of work day clean up
+ *
* Revision 1.24 2003/12/16 23:17:07 pelle
* Work done on the SigningServlet. The two phase web model is now only an option.
***************
*** 310,315 ****
final String endpoint = request.getParameter("endpoint");
final NamedObjectBuilder named = sigreq.getUnsigned();
boolean isSigned = false;
!
out.println("<table bgcolor=\"#708070\"><tr><td><h4 style=\"color: white\">");
if (isSigned)
--- 313,323 ----
final String endpoint = request.getParameter("endpoint");
final NamedObjectBuilder named = sigreq.getUnsigned();
+ final String parent = NSTools.getSignatoryURI(named.getName());
boolean isSigned = false;
! if (!signer.canSignFor(parent)) {
! out.println("<h3>Can not Sign for:");
! out.println(parent);
! out.println("</h3>");
! }
out.println("<table bgcolor=\"#708070\"><tr><td><h4 style=\"color: white\">");
if (isSigned)
***************
*** 332,336 ****
out.println("</td></tr></table>");
if (isReadyToSign(request)) {
- final String parent = NSTools.getSignatoryURI(named.getName());
out.println("<div id=\"log\" style=\"background:#003;color:#EEE\"><tt><ul><li>Signing with " + parent + "...</li>");
--- 340,343 ----
***************
*** 345,349 ****
} catch (UserCancelsException e) {
// System.out.println("<br><font color=\"red\"><b>ERROR: User Cancellation</b></font><br>");
! out.println("<li><font color=\"red\"><b>User Cancellation</b></font></li>");
isSigned = false;
} catch (NonExistingSignerException e) {
--- 352,357 ----
} catch (UserCancelsException e) {
// System.out.println("<br><font color=\"red\"><b>ERROR: User Cancellation</b></font><br>");
! out.println("<li><font color=\"red\"><b>You Cancelled</b></font></li>");
! out.println("<li onclick=\"history.back(2)\"><b>Click to Go back</b></li>");
isSigned = false;
} catch (NonExistingSignerException e) {
***************
*** 381,385 ****
boolean isSigned;
try {
! context.log("SIGN: Signing with " + signer);
final SignedNamedObject signed = named.sign(signer);
isSigned = true;
--- 389,393 ----
boolean isSigned;
try {
! context.log("SIGN: Signing with " + named.getSignatory().getName());
final SignedNamedObject signed = named.sign(signer);
isSigned = true;
***************
*** 389,392 ****
--- 397,401 ----
} catch (InvalidPassphraseException e) {
out.println("<li><font color=\"red\"><b>ERROR: Wrong Passphrase</b></font></li>");
+ out.flush();
isSigned = sign(named,out);
}
***************
*** 395,399 ****
protected void printSecondStageForm(HttpServletRequest request, final PrintWriter out, SignatureRequest sigreq, final String endpoint) {
! out.println("<table><tr><td ><h4>Do you wish to sign this?</h4></td></tr></table>");
}
--- 404,408 ----
protected void printSecondStageForm(HttpServletRequest request, final PrintWriter out, SignatureRequest sigreq, final String endpoint) {
! //out.println("<table><tr><td ><h4>Do you wish to sign this?</h4></td></tr></table>");
}
|
|
From: <pe...@us...> - 2003-12-16 23:44:13
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id
In directory sc8-pr-cvs1:/tmp/cvs-serv4771/src/java/org/neuclear/id
Modified Files:
NSTools.java
Added Files:
SignedNamedObject.xsl
Log Message:
End of work day clean up
--- NEW FILE: SignedNamedObject.xsl ---
Index: NSTools.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/NSTools.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** NSTools.java 12 Dec 2003 15:12:50 -0000 1.21
--- NSTools.java 16 Dec 2003 23:44:10 -0000 1.22
***************
*** 2,5 ****
--- 2,8 ----
* $Id$
* $Log$
+ * Revision 1.22 2003/12/16 23:44:10 pelle
+ * End of work day clean up
+ *
* Revision 1.21 2003/12/12 15:12:50 pelle
* The ReceiverServletTest now passes.
***************
*** 184,187 ****
--- 187,191 ----
import org.neuclear.commons.Utility;
import org.neuclear.commons.crypto.CryptoTools;
+ import org.neuclear.id.builders.NamedObjectBuilder;
import java.util.regex.Matcher;
***************
*** 410,414 ****
return !Utility.isEmpty(elem.attributeValue(DocumentHelper.createQName("name", NS_NEUID)));
}
-
private static final String HTTP_SCHEME_EX = "^neu:(neuid:)?\\/\\/(([\\w-]+\\.)+[\\w-]+)$";
private static final Pattern HTTP_SCHEME = Pattern.compile(HTTP_SCHEME_EX);
--- 414,417 ----
|
|
From: <pe...@us...> - 2003-12-16 23:36:53
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/formatters In directory sc8-pr-cvs1:/tmp/cvs-serv3302/src/java/org/neuclear/id/formatters Log Message: Directory /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/formatters added to the repository |
|
From: <pe...@us...> - 2003-12-16 23:35:45
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/formatter In directory sc8-pr-cvs1:/tmp/cvs-serv3114/src/java/org/neuclear/id/formatter Log Message: Directory /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/id/formatter added to the repository |
|
From: <pe...@us...> - 2003-12-16 23:17:10
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/signers/servlet
In directory sc8-pr-cvs1:/tmp/cvs-serv31629/src/java/org/neuclear/signers/servlet
Modified Files:
DemoSigningServlet.java SigningServlet.java
Log Message:
Work done on the SigningServlet. The two phase web model is now only an option.
Allowing much quicker signing, using the GuiDialogueAgent.
The screen has also been cleaned up and displays the xml to be signed.
The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
cancels the signing process.
Index: DemoSigningServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/signers/servlet/DemoSigningServlet.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** DemoSigningServlet.java 15 Dec 2003 14:38:30 -0000 1.15
--- DemoSigningServlet.java 16 Dec 2003 23:17:06 -0000 1.16
***************
*** 2,5 ****
--- 2,13 ----
* $Id$
* $Log$
+ * Revision 1.16 2003/12/16 23:17:06 pelle
+ * Work done on the SigningServlet. The two phase web model is now only an option.
+ * Allowing much quicker signing, using the GuiDialogueAgent.
+ * The screen has also been cleaned up and displays the xml to be signed.
+ * The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ * The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ * cancels the signing process.
+ *
* Revision 1.15 2003/12/15 14:38:30 pelle
* Added EnsureHostRequestFilter to commons, to only allow requests from a particular IP
***************
*** 179,187 ****
--- 187,198 ----
import org.neuclear.commons.NeuClearException;
+ import org.neuclear.commons.Utility;
import org.neuclear.commons.crypto.passphraseagents.PassPhraseAgent;
import org.neuclear.commons.crypto.passphraseagents.ServletPassPhraseAgent;
import org.neuclear.commons.crypto.signers.Signer;
import org.neuclear.commons.crypto.signers.TestCaseSigner;
+ import org.neuclear.commons.crypto.Base64;
import org.neuclear.xml.XMLException;
+ import org.neuclear.id.SignatureRequest;
import javax.servlet.ServletConfig;
***************
*** 210,215 ****
agent.clear();
}
! protected void writePassphraseDialogue(final PrintWriter out) {
out.println("Passphrase: <input name=\"passphrase\" type=\"password\" size=\"40\">");
}
--- 221,238 ----
agent.clear();
}
! protected boolean isReadyToSign(HttpServletRequest request) {
! return !Utility.isEmpty(request.getParameter("sign"));
! }
! protected void printSecondStageForm(HttpServletRequest request, final PrintWriter out, SignatureRequest sigreq, final String endpoint) {
! out.println("<table><tr><td ><h4>Do you wish to sign this?</h4></td></tr>");
! out.print("<tr><td><form action=\"");
! out.print(request.getRequestURL());
! out.print("\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
! out.print(Base64.encode(sigreq.getEncoded().getBytes()));
! out.print("\" type=\"hidden\">\n <input name=\"endpoint\" value=\"");
! out.print(endpoint);
! out.println("\" type=\"hidden\"/>\n");
out.println("Passphrase: <input name=\"passphrase\" type=\"password\" size=\"40\">");
+ out.println(" <input type=\"submit\" name=\"sign\" value=\"Sign\"></form></td></tr></table>");
}
Index: SigningServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/signers/servlet/SigningServlet.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** SigningServlet.java 15 Dec 2003 23:33:05 -0000 1.23
--- SigningServlet.java 16 Dec 2003 23:17:07 -0000 1.24
***************
*** 2,5 ****
--- 2,13 ----
* $Id$
* $Log$
+ * Revision 1.24 2003/12/16 23:17:07 pelle
+ * Work done on the SigningServlet. The two phase web model is now only an option.
+ * Allowing much quicker signing, using the GuiDialogueAgent.
+ * The screen has also been cleaned up and displays the xml to be signed.
+ * The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ * The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ * cancels the signing process.
+ *
* Revision 1.23 2003/12/15 23:33:05 pelle
* added ServletTools.getInitParam() which first tries the ServletConfig, then the context config.
***************
*** 233,236 ****
--- 241,245 ----
import org.neuclear.commons.crypto.Base64;
import org.neuclear.commons.crypto.passphraseagents.GuiDialogAgent;
+ import org.neuclear.commons.crypto.passphraseagents.UserCancelsException;
import org.neuclear.commons.crypto.signers.*;
import org.neuclear.commons.servlets.ServletTools;
***************
*** 254,261 ****
import java.io.FileNotFoundException;
import java.security.GeneralSecurityException;
public class SigningServlet extends XMLInputStreamServlet {
! public final void init(final ServletConfig config) throws ServletException {
super.init(config);
context = config.getServletContext();
--- 263,272 ----
import java.io.FileNotFoundException;
import java.security.GeneralSecurityException;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
public class SigningServlet extends XMLInputStreamServlet {
! public void init(final ServletConfig config) throws ServletException {
super.init(config);
context = config.getServletContext();
***************
*** 296,332 ****
response.setContentType("text/html");
final PrintWriter out = response.getWriter();
! ServletTools.printHeader(out, request, title);
final String endpoint = request.getParameter("endpoint");
final NamedObjectBuilder named = sigreq.getUnsigned();
boolean isSigned = false;
- if (!Utility.isEmpty(request.getParameter("sign"))) {
- final String parent = NSTools.getSignatoryURI(named.getName());
- out.println("Signing with " + parent + "...");
- out.flush();
- try {
- context.log("SIGN: Signing with " + parent);
- final SignedNamedObject signed = named.sign(signer);
- isSigned = true;
- out.println("Signed<br>");
- out.println("<br>Verifying...");
- out.flush();
- out.println("SIGN: " + signed.getName() + " Verified<br>");
-
- } catch (InvalidNamedObjectException e) {
- System.out.println("<br><font color=\"red\"><b>ERROR: Invalid Identity</b></font><br>");
- out.println("<br><font color=\"red\"><b>ERROR: Invalid Identity</b></font><br>");
- isSigned = false;
- } catch (InvalidPassphraseException e) {
- System.out.println("<br><font color=\"red\"><b>ERROR: Wrong Passphrase</b></font><br>");
- out.println("<br><font color=\"red\"><b>ERROR: Wrong Passphrase</b></font><br>");
- isSigned = false;
- } catch (NonExistingSignerException e) {
- System.out.println("<br><font color=\"red\"><b>ERROR: We Aren't Able to Sign for that Identity</b></font><br>");
- out.println("<br><font color=\"red\"><b>ERROR: We Aren't Able to Sign for that Identity</b></font><br>");
- isSigned = false;
- }
-
- }
out.println("<table bgcolor=\"#708070\"><tr><td><h4 style=\"color: white\">");
if (isSigned)
--- 307,315 ----
response.setContentType("text/html");
final PrintWriter out = response.getWriter();
! ServletTools.printHeader(out, request, getTitle());
final String endpoint = request.getParameter("endpoint");
final NamedObjectBuilder named = sigreq.getUnsigned();
boolean isSigned = false;
out.println("<table bgcolor=\"#708070\"><tr><td><h4 style=\"color: white\">");
if (isSigned)
***************
*** 343,362 ****
out.println(sigreq.getDescription());
}
!
out.println("</td></tr></table>");
if (!isSigned) {
! out.println("<table><tr><td ><h4>Do you wish to sign this?</h4></td></tr>");
! out.print("<tr><td><form action=\"");
! out.print(request.getRequestURL());
! out.print("\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
! out.print(Base64.encode(sigreq.getEncoded().getBytes()));
! out.print("\" type=\"hidden\">\n <input name=\"endpoint\" value=\"");
! out.print(endpoint);
! out.println("\" type=\"hidden\"/>\n");
! writePassphraseDialogue(out);
! out.println(" <input type=\"submit\" name=\"sign\" value=\"Sign\"></form></td></tr></table>");
} else if (!Utility.isEmpty(endpoint)) {
! out.print("<tr><td>Signed, returning to site...<form action=\"");
out.print(endpoint);
out.print("\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
--- 326,364 ----
out.println(sigreq.getDescription());
}
! out.println("</td></tr><tr><td style=\"background:lightgrey;color:black\"><tt>");
! Matcher matcher=xmlescape.matcher(named.asXML());
! out.println(matcher.replaceAll("<"));
out.println("</td></tr></table>");
+ if (isReadyToSign(request)) {
+ final String parent = NSTools.getSignatoryURI(named.getName());
+
+ out.println("<div id=\"log\" style=\"background:#003;color:#EEE\"><tt><ul><li>Signing with " + parent + "...</li>");
+ out.flush();
+ try {
+ isSigned = sign(named, out);
+
+ } catch (InvalidNamedObjectException e) {
+ // System.out.println("<br><font color=\"red\"><b>ERROR: Invalid Identity</b></font><br>");
+ out.println("<li><font color=\"red\"><b>ERROR: Invalid Identity</b></font></li>");
+ isSigned = false;
+ } catch (UserCancelsException e) {
+ // System.out.println("<br><font color=\"red\"><b>ERROR: User Cancellation</b></font><br>");
+ out.println("<li><font color=\"red\"><b>User Cancellation</b></font></li>");
+ isSigned = false;
+ } catch (NonExistingSignerException e) {
+ // System.out.println("<br><font color=\"red\"><b>ERROR: We Aren't Able to Sign for that Identity</b></font><br>");
+ out.println("<li><font color=\"red\"><b>ERROR: We Aren't Able to Sign for that Identity</b></font></li>");
+ isSigned = false;
+ }
+ out.println("</ul></tt></div>");
+
+ }
if (!isSigned) {
! printSecondStageForm(request, out, sigreq, endpoint);
} else if (!Utility.isEmpty(endpoint)) {
! out.print("<tr><td>Returning to site: ");
! out.print(endpoint);
! out.print("<form action=\"");
out.print(endpoint);
out.print("\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
***************
*** 376,384 ****
}
! protected void writePassphraseDialogue(final PrintWriter out) {
}
protected javax.servlet.ServletContext context;
private Signer signer;
private String title;
}
--- 378,420 ----
}
! private boolean sign(final NamedObjectBuilder named, final PrintWriter out) throws NeuClearException, XMLException {
! boolean isSigned;
! try {
! context.log("SIGN: Signing with " + signer);
! final SignedNamedObject signed = named.sign(signer);
! isSigned = true;
! out.println("<li>Signed</li>");
! out.println("<li>" + signed.getName() + " Verified</li>");
! out.flush();
! } catch (InvalidPassphraseException e) {
! out.println("<li><font color=\"red\"><b>ERROR: Wrong Passphrase</b></font></li>");
! isSigned = sign(named,out);
! }
! return isSigned;
! }
!
! protected void printSecondStageForm(HttpServletRequest request, final PrintWriter out, SignatureRequest sigreq, final String endpoint) {
! out.println("<table><tr><td ><h4>Do you wish to sign this?</h4></td></tr></table>");
! }
!
! /**
! * Return True when ready to sign.
! * Multirequest signers, need to verify that the correct request parameters are available.
! * @param request
! * @return
! */
! protected boolean isReadyToSign(HttpServletRequest request) {
! return true;
}
+ protected String getTitle() {
+ return title;
+ }
+
+
+
protected javax.servlet.ServletContext context;
private Signer signer;
private String title;
+ static private Pattern xmlescape=Pattern.compile("(\\<)");
}
|
|
From: <pe...@us...> - 2003-12-16 23:17:10
|
Update of /cvsroot/neuclear/neuclear-id In directory sc8-pr-cvs1:/tmp/cvs-serv31629 Modified Files: project.properties Log Message: Work done on the SigningServlet. The two phase web model is now only an option. Allowing much quicker signing, using the GuiDialogueAgent. The screen has also been cleaned up and displays the xml to be signed. The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this. The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically cancels the signing process. Index: project.properties =================================================================== RCS file: /cvsroot/neuclear/neuclear-id/project.properties,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** project.properties 12 Dec 2003 21:13:17 -0000 1.24 --- project.properties 16 Dec 2003 23:17:07 -0000 1.25 *************** *** 2,6 **** # P R O J E C T P R O P E R T I E S # ------------------------------------------------------------------- ! #maven.test.skip=true maven.compile.debug = on maven.compile.optimize = on --- 2,6 ---- # P R O J E C T P R O P E R T I E S # ------------------------------------------------------------------- ! maven.test.skip=true maven.compile.debug = on maven.compile.optimize = on |
Update of /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/passphraseagents
In directory sc8-pr-cvs1:/tmp/cvs-serv31489/src/java/org/neuclear/commons/crypto/passphraseagents
Modified Files:
AskAtStartupAgent.java CommandLineAgent.java
GuiDialogAgent.java PassPhraseAgent.java
Added Files:
UserCancelsException.java
Log Message:
Work done on the SigningServlet. The two phase web model is now only an option.
Allowing much quicker signing, using the GuiDialogueAgent.
The screen has also been cleaned up and displays the xml to be signed.
The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
cancels the signing process.
--- NEW FILE: UserCancelsException.java ---
package org.neuclear.commons.crypto.passphraseagents;
import org.neuclear.commons.crypto.CryptoException;
/*
NeuClear Distributed Transaction Clearing Platform
(C) 2003 Pelle Braendgaard
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
$Id: UserCancelsException.java,v 1.1 2003/12/16 23:16:40 pelle Exp $
$Log: UserCancelsException.java,v $
Revision 1.1 2003/12/16 23:16:40 pelle
Work done on the SigningServlet. The two phase web model is now only an option.
Allowing much quicker signing, using the GuiDialogueAgent.
The screen has also been cleaned up and displays the xml to be signed.
The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
cancels the signing process.
*/
/**
* User: pelleb
* Date: Dec 16, 2003
* Time: 4:28:58 PM
*/
public class UserCancelsException extends CryptoException {
public UserCancelsException(String name) {
super("Cancellation by: "+name);
this.name=name;
}
public String getName() {
return name;
}
private final String name;
}
Index: AskAtStartupAgent.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/passphraseagents/AskAtStartupAgent.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** AskAtStartupAgent.java 21 Nov 2003 04:43:41 -0000 1.2
--- AskAtStartupAgent.java 16 Dec 2003 23:16:40 -0000 1.3
***************
*** 21,24 ****
--- 21,32 ----
$Id$
$Log$
+ Revision 1.3 2003/12/16 23:16:40 pelle
+ Work done on the SigningServlet. The two phase web model is now only an option.
+ Allowing much quicker signing, using the GuiDialogueAgent.
+ The screen has also been cleaned up and displays the xml to be signed.
+ The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ cancels the signing process.
+
Revision 1.2 2003/11/21 04:43:41 pelle
EncryptedFileStore now works. It uses the PBECipher with DES3 afair.
***************
*** 41,45 ****
*/
public final class AskAtStartupAgent implements PassPhraseAgent {
! public AskAtStartupAgent(final InteractiveAgent agent, final String name) {
this.name = name;
this.passphrase = agent.getPassPhrase(name);
--- 49,53 ----
*/
public final class AskAtStartupAgent implements PassPhraseAgent {
! public AskAtStartupAgent(final InteractiveAgent agent, final String name) throws UserCancelsException {
this.name = name;
this.passphrase = agent.getPassPhrase(name);
Index: CommandLineAgent.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/passphraseagents/CommandLineAgent.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CommandLineAgent.java 21 Nov 2003 04:43:41 -0000 1.3
--- CommandLineAgent.java 16 Dec 2003 23:16:40 -0000 1.4
***************
*** 25,28 ****
--- 25,36 ----
$Id$
$Log$
+ Revision 1.4 2003/12/16 23:16:40 pelle
+ Work done on the SigningServlet. The two phase web model is now only an option.
+ Allowing much quicker signing, using the GuiDialogueAgent.
+ The screen has also been cleaned up and displays the xml to be signed.
+ The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ cancels the signing process.
+
Revision 1.3 2003/11/21 04:43:41 pelle
EncryptedFileStore now works. It uses the PBECipher with DES3 afair.
***************
*** 74,79 ****
public static void main(final String[] args) {
final PassPhraseAgent dia = new CommandLineAgent();
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
System.exit(0);
--- 82,91 ----
public static void main(final String[] args) {
final PassPhraseAgent dia = new CommandLineAgent();
! try {
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! } catch (UserCancelsException e) {
! e.printStackTrace();
! }
System.exit(0);
Index: GuiDialogAgent.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/passphraseagents/GuiDialogAgent.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** GuiDialogAgent.java 14 Dec 2003 20:52:54 -0000 1.3
--- GuiDialogAgent.java 16 Dec 2003 23:16:40 -0000 1.4
***************
*** 4,7 ****
--- 4,11 ----
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+ import java.awt.event.ItemListener;
+ import java.awt.event.ItemEvent;
+ import java.util.Map;
+ import java.util.HashMap;
/*
***************
*** 25,28 ****
--- 29,40 ----
$Id$
$Log$
+ Revision 1.4 2003/12/16 23:16:40 pelle
+ Work done on the SigningServlet. The two phase web model is now only an option.
+ Allowing much quicker signing, using the GuiDialogueAgent.
+ The screen has also been cleaned up and displays the xml to be signed.
+ The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ cancels the signing process.
+
Revision 1.3 2003/12/14 20:52:54 pelle
Added ServletPassPhraseAgent which uses ThreadLocal to transfer the passphrase to the signer.
***************
*** 73,76 ****
--- 85,89 ----
public final class GuiDialogAgent implements InteractiveAgent {
public GuiDialogAgent() {
+ cache=new HashMap();
frame = new Frame("Please Enter Passphrase...");
***************
*** 111,114 ****
--- 124,137 ----
final Panel buttons = new Panel(new FlowLayout());
panel.add(buttons, BorderLayout.SOUTH);
+
+ remember=new Checkbox("remember passphrase",false);
+ buttons.add(remember);
+ remember.addItemListener(new ItemListener(){
+ public void itemStateChanged(ItemEvent itemEvent) {
+ if (!remember.getState())
+ cache.clear();
+ }
+
+ });
ok = new Button("Sign");
buttons.add(ok);
***************
*** 119,122 ****
--- 142,146 ----
synchronized (passphrase) {
passphrase.setText("");
+ isCancel=true;
passphrase.notifyAll();
}
***************
*** 128,131 ****
--- 152,156 ----
public void actionPerformed(final ActionEvent actionEvent) {
synchronized (passphrase) {
+ isCancel=false;
passphrase.notifyAll();
}
***************
*** 138,144 ****
}
! public char[] getPassPhrase(final String name) {
synchronized (passphrase) {//We dont want multiple agents popping up at the same time
! passphrase.setText("");
nameLabel.setText(name);
frame.pack();
--- 163,173 ----
}
! public synchronized char[] getPassPhrase(final String name) throws UserCancelsException {
synchronized (passphrase) {//We dont want multiple agents popping up at the same time
! if (cache.containsKey(name))
! passphrase.setText((String) cache.get(name));
! else
! passphrase.setText("");
! isCancel=true;
nameLabel.setText(name);
frame.pack();
***************
*** 150,154 ****
--- 179,187 ----
}
frame.setVisible(false);
+ if(isCancel)
+ throw new UserCancelsException(name);
final String phrase = passphrase.getText();
+ if(remember.getState())
+ cache.put(name,phrase);
passphrase.setText("");
return phrase.toCharArray();
***************
*** 158,163 ****
public static void main(final String[] args) {
final PassPhraseAgent dia = new GuiDialogAgent();
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
System.exit(0);
--- 191,200 ----
public static void main(final String[] args) {
final PassPhraseAgent dia = new GuiDialogAgent();
! try {
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! System.out.println("Getting passphrase... " + new String(dia.getPassPhrase("neu://pelle@test")));
! } catch (UserCancelsException e) {
! System.out.print("User Cancellation by: "+e.getName());
! }
System.exit(0);
***************
*** 166,172 ****
--- 203,212 ----
private final TextField passphrase;
private final Button ok;
+ private final Checkbox remember;
private final Label nameLabel;
private final Frame frame;
+ private final Map cache;
private Image img;
+ private boolean isCancel=true;
Index: PassPhraseAgent.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/passphraseagents/PassPhraseAgent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** PassPhraseAgent.java 11 Nov 2003 21:17:46 -0000 1.1
--- PassPhraseAgent.java 16 Dec 2003 23:16:40 -0000 1.2
***************
*** 22,25 ****
--- 22,33 ----
$Id$
$Log$
+ Revision 1.2 2003/12/16 23:16:40 pelle
+ Work done on the SigningServlet. The two phase web model is now only an option.
+ Allowing much quicker signing, using the GuiDialogueAgent.
+ The screen has also been cleaned up and displays the xml to be signed.
+ The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ cancels the signing process.
+
Revision 1.1 2003/11/11 21:17:46 pelle
Further vital reshuffling.
***************
*** 55,58 ****
* @return
*/
! char[] getPassPhrase(String name);
}
--- 63,66 ----
* @return
*/
! char[] getPassPhrase(String name) throws UserCancelsException;
}
|
|
From: <pe...@us...> - 2003-12-16 23:16:43
|
Update of /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/signers
In directory sc8-pr-cvs1:/tmp/cvs-serv31489/src/java/org/neuclear/commons/crypto/signers
Modified Files:
ServletSignerFactory.java SimpleSigner.java
Log Message:
Work done on the SigningServlet. The two phase web model is now only an option.
Allowing much quicker signing, using the GuiDialogueAgent.
The screen has also been cleaned up and displays the xml to be signed.
The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
cancels the signing process.
Index: ServletSignerFactory.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/signers/ServletSignerFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ServletSignerFactory.java 15 Dec 2003 23:32:40 -0000 1.3
--- ServletSignerFactory.java 16 Dec 2003 23:16:40 -0000 1.4
***************
*** 57,61 ****
}
! private static final PassPhraseAgent createWrapperAgent(final String keeppassphrase, final PassPhraseAgent coreagent, final String serviceid) {
if (!Utility.isEmpty(keeppassphrase)&&keeppassphrase.equals("1")&&coreagent instanceof InteractiveAgent)
return new AskAtStartupAgent((InteractiveAgent)coreagent,serviceid);
--- 57,61 ----
}
! private static final PassPhraseAgent createWrapperAgent(final String keeppassphrase, final PassPhraseAgent coreagent, final String serviceid) throws UserCancelsException {
if (!Utility.isEmpty(keeppassphrase)&&keeppassphrase.equals("1")&&coreagent instanceof InteractiveAgent)
return new AskAtStartupAgent((InteractiveAgent)coreagent,serviceid);
Index: SimpleSigner.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/signers/SimpleSigner.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** SimpleSigner.java 10 Dec 2003 23:55:45 -0000 1.5
--- SimpleSigner.java 16 Dec 2003 23:16:40 -0000 1.6
***************
*** 2,5 ****
--- 2,13 ----
* $Id$
* $Log$
+ * Revision 1.6 2003/12/16 23:16:40 pelle
+ * Work done on the SigningServlet. The two phase web model is now only an option.
+ * Allowing much quicker signing, using the GuiDialogueAgent.
+ * The screen has also been cleaned up and displays the xml to be signed.
+ * The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
+ * The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
+ * cancels the signing process.
+ *
* Revision 1.5 2003/12/10 23:55:45 pelle
* Did some cleaning up in the builders
***************
*** 190,194 ****
*/
! public final void addKey(final String name, final PrivateKey key) throws GeneralSecurityException, IOException {
addKey(name, agent.getPassPhrase(name), key);
}
--- 198,202 ----
*/
! public final void addKey(final String name, final PrivateKey key) throws GeneralSecurityException, IOException,CryptoException {
addKey(name, agent.getPassPhrase(name), key);
}
|
|
From: <pe...@us...> - 2003-12-16 23:16:18
|
Update of /cvsroot/neuclear/neuclear-signer/src/java/org/neuclear/signers/standalone
In directory sc8-pr-cvs1:/tmp/cvs-serv31378/src/java/org/neuclear/signers/standalone
Modified Files:
StandaloneSigner.java StandaloneSigningServlet.java
Log Message:
Work done on the SigningServlet. The two phase web model is now only an option.
Allowing much quicker signing, using the GuiDialogueAgent.
The screen has also been cleaned up and displays the xml to be signed.
The GuiDialogueAgent now optionally remembers passphrases and has a checkbox to support this.
The PassPhraseAgent's now have a UserCancelsException, which allows the agent to tell the application if the user specifically
cancels the signing process.
Index: StandaloneSigner.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-signer/src/java/org/neuclear/signers/standalone/StandaloneSigner.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** StandaloneSigner.java 15 Dec 2003 23:32:18 -0000 1.2
--- StandaloneSigner.java 16 Dec 2003 23:16:15 -0000 1.3
***************
*** 28,35 ****
context.addHandler(handler);
server.start();
!
! } catch (IOException e) {
! e.printStackTrace(); //To change body of catch statement use Options | File Templates.
! } catch (MultiException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
--- 28,35 ----
context.addHandler(handler);
server.start();
! context.start();
! handler.start();
! handler.initializeServlets();
! } catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
Index: StandaloneSigningServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-signer/src/java/org/neuclear/signers/standalone/StandaloneSigningServlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** StandaloneSigningServlet.java 15 Dec 2003 14:38:18 -0000 1.1
--- StandaloneSigningServlet.java 16 Dec 2003 23:16:15 -0000 1.2
***************
*** 6,13 ****
--- 6,16 ----
import org.neuclear.commons.crypto.passphraseagents.GuiDialogAgent;
import org.neuclear.commons.NeuClearException;
+ import org.neuclear.commons.Utility;
import org.neuclear.commons.servlets.ServletTools;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
+ import javax.servlet.ServletRequest;
+ import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
***************
*** 26,29 ****
--- 29,41 ----
protected Signer createSigner(ServletConfig config) throws GeneralSecurityException, NeuClearException, IOException {
return new DefaultSigner(new GuiDialogAgent());
+ }
+
+ protected String getTitle(){
+ return "NeuClear Personal Signing Service";
+ }
+ public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
+ if(!request.getRemoteAddr().equals("127.0.0.1"))
+ ((HttpServletResponse)response).sendError(500,"No external access allowed");
+ super.service(request, response);
}
|
|
From: <pe...@us...> - 2003-12-16 21:09:25
|
Update of /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/signers
In directory sc8-pr-cvs1:/tmp/cvs-serv818/src/java/org/neuclear/commons/crypto/signers
Modified Files:
JCESigner.java
Log Message:
The Sample Web App is semi stable for now.
Index: JCESigner.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-commons/src/java/org/neuclear/commons/crypto/signers/JCESigner.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** JCESigner.java 14 Dec 2003 20:52:54 -0000 1.10
--- JCESigner.java 16 Dec 2003 21:09:22 -0000 1.11
***************
*** 2,5 ****
--- 2,8 ----
* $Id$
* $Log$
+ * Revision 1.11 2003/12/16 21:09:22 pelle
+ * The Sample Web App is semi stable for now.
+ *
* Revision 1.10 2003/12/14 20:52:54 pelle
* Added ServletPassPhraseAgent which uses ThreadLocal to transfer the passphrase to the signer.
***************
*** 199,205 ****
--- 202,210 ----
private static KeyStore loadKeyStore(final String provider, final String type, final InputStream in, final PassPhraseAgent agent, final String name) throws NeuClearException {
+ // System.out.println("Loading JCESigner: "+name);
return loadKeyStore(provider,type,in,agent.getPassPhrase("Keystore password for: "+name));
}
private static KeyStore loadKeyStore(final String provider, final String type, final InputStream in, final char[] passphrase) throws NeuClearException {
+ // System.out.println("Loading JCESigner using passphrase: "+new String(passphrase));
try {
KeyStore ki = null;
***************
*** 209,213 ****
ki = KeyStore.getInstance(type, provider);
ki.load(in, passphrase);
- // System.out.println("Successfully loaded JCESigner: " + name + " type: " + ki.getType() + " size: " + ki.size());
return ki;
} catch (KeyStoreException e) {
--- 214,217 ----
|
|
From: <pe...@us...> - 2003-12-16 21:09:04
|
Update of /cvsroot/neuclear/neuclear-ledger/src/java/org/neuclear/ledger/implementations
In directory sc8-pr-cvs1:/tmp/cvs-serv701/src/java/org/neuclear/ledger/implementations
Modified Files:
SQLLedger.java
Log Message:
The Sample Web App is semi stable for now.
Index: SQLLedger.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-ledger/src/java/org/neuclear/ledger/implementations/SQLLedger.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** SQLLedger.java 1 Dec 2003 17:11:01 -0000 1.4
--- SQLLedger.java 16 Dec 2003 21:08:59 -0000 1.5
***************
*** 454,457 ****
--- 454,459 ----
} catch (SQLException e) {
throw new LowlevelLedgerException(this,e);
+ } catch (IOException e) {
+ throw new LowlevelLedgerException(this,e);
}
}
|
|
From: <pe...@us...> - 2003-12-16 21:08:40
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/webapp
In directory sc8-pr-cvs1:/tmp/cvs-serv596/src/webapp
Modified Files:
index.jsp
Log Message:
The Sample Web App is semi stable for now.
Index: index.jsp
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id-sample/src/webapp/index.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** index.jsp 16 Dec 2003 15:04:31 -0000 1.2
--- index.jsp 16 Dec 2003 21:08:37 -0000 1.3
***************
*** 47,51 ****
<form action="Send" method="GET">
<b>To:</b><br/>
! <input name="to"><br/>
<b>Subject:</b><br/>
<input name="subject" length="80"><br/>
--- 47,51 ----
<form action="Send" method="GET">
<b>To:</b><br/>
! <input name="recipient"><br/>
<b>Subject:</b><br/>
<input name="subject" length="80"><br/>
***************
*** 61,63 ****
</body>
! </html>
\ No newline at end of file
--- 61,63 ----
</body>
! </html>
|
|
From: <pe...@us...> - 2003-12-16 21:08:40
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/webapp/WEB-INF
In directory sc8-pr-cvs1:/tmp/cvs-serv596/src/webapp/WEB-INF
Modified Files:
web.xml
Log Message:
The Sample Web App is semi stable for now.
Index: web.xml
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id-sample/src/webapp/WEB-INF/web.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** web.xml 16 Dec 2003 15:04:31 -0000 1.4
--- web.xml 16 Dec 2003 21:08:37 -0000 1.5
***************
*** 43,46 ****
--- 43,47 ----
<servlet>
<servlet-name>sendmessage</servlet-name>
+ <description>Sample Servlet</description>
<servlet-class>org.neuclear.id.sample.SendMessageServlet</servlet-class>
<load-on-startup>1</load-on-startup>
|
|
From: <pe...@us...> - 2003-12-16 21:08:39
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample
In directory sc8-pr-cvs1:/tmp/cvs-serv596/src/java/org/neuclear/id/sample
Modified Files:
SendMessageServlet.java
Log Message:
The Sample Web App is semi stable for now.
Index: SendMessageServlet.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample/SendMessageServlet.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** SendMessageServlet.java 16 Dec 2003 17:55:52 -0000 1.1
--- SendMessageServlet.java 16 Dec 2003 21:08:37 -0000 1.2
***************
*** 34,52 ****
String recipient=Utility.denullString(request.getParameter("recipient"));
! String subject=Utility.denullString(request.getParameter("recipient"));
String message=Utility.denullString(request.getParameter("message"));
try {
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
- builder.sign(getSigner());
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
SignedNamedObject sig=sigreq.sign(getSigner());
out.print("<form action=\"");
out.print(userns.getSigner());
! out.print(">\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
out.print(Base64.encode(sig.getEncoded().getBytes()));
! out.print(" type=\"hidden\"><input name=\"endpoint\" value=\"");
! out.print(request.getServletPath());
! out.print(" type=\"hidden\"></form>Transfering to Signing Server");
! out.print("<script language=\"javascript\"><!--document.forms[0].submit();--></script>");
} catch (NeuClearException e) {
--- 34,51 ----
String recipient=Utility.denullString(request.getParameter("recipient"));
! String subject=Utility.denullString(request.getParameter("subject"));
String message=Utility.denullString(request.getParameter("message"));
try {
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
SignedNamedObject sig=sigreq.sign(getSigner());
out.print("<form action=\"");
out.print(userns.getSigner());
! out.print("\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
out.print(Base64.encode(sig.getEncoded().getBytes()));
! out.print("\" type=\"hidden\"><input name=\"endpoint\" value=\"");
! out.print(ServletTools.getAbsoluteURL(request, "/Send"));
! out.print("\" type=\"hidden\"></form> Transfering to Signing Server");
! out.print("<script language=\"javascript\"><!--\ndocument.forms[0].submit();\n--></script>");
} catch (NeuClearException e) {
|
|
From: <pe...@us...> - 2003-12-16 17:55:55
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample
In directory sc8-pr-cvs1:/tmp/cvs-serv13751/src/java/org/neuclear/id/sample
Added Files:
MessageSenderReceiver.java SendMessageServlet.java
Log Message:
Missed the following files when checking in.
--- NEW FILE: MessageSenderReceiver.java ---
package org.neuclear.id.sample;
import org.neuclear.receiver.Receiver;
import org.neuclear.receiver.UnsupportedTransaction;
import org.neuclear.receiver.SimpleReceipt;
import org.neuclear.xml.ElementProxy;
import org.neuclear.id.SignedNamedObject;
import org.neuclear.id.SignedMessage;
import org.neuclear.id.NSTools;
import org.neuclear.id.Identity;
import org.neuclear.id.resolver.NSResolver;
import org.neuclear.id.builders.NamedObjectBuilder;
import org.neuclear.commons.NeuClearException;
import org.neuclear.store.Store;
import org.neuclear.senders.Sender;
import org.dom4j.DocumentHelper;
/**
* Sample Receiver of SignedNamedObjects.
* All this does is to send a copy of the object to the signers receiver.
*/
public class MessageSenderReceiver implements Receiver{
public ElementProxy receive(SignedNamedObject obj) throws UnsupportedTransaction, NeuClearException {
if (obj instanceof SignedMessage) {
String recipient=((SignedMessage)obj).getRecipient();
//Check if recipient is a NEU
if (NSTools.isValidName(recipient) ){
// Resolve Identity
Identity id=NSResolver.resolveIdentity(recipient);
//ID send message
id.receive(obj);
} else
Sender.quickSend(recipient,obj);
}
// Send copy to signer
obj.getSignatory().receive(obj);
return new SimpleReceipt("success");
}
}
--- NEW FILE: SendMessageServlet.java ---
package org.neuclear.id.sample;
import org.neuclear.receiver.ReceiverServlet;
import org.neuclear.commons.servlets.ServletTools;
import org.neuclear.commons.Utility;
import org.neuclear.commons.NeuClearException;
import org.neuclear.commons.crypto.Base64;
import org.neuclear.id.Identity;
import org.neuclear.id.SignedNamedObject;
import org.neuclear.id.builders.NamedObjectBuilder;
import org.neuclear.id.builders.SignedMessageBuilder;
import org.neuclear.id.builders.SignatureRequestBuilder;
import org.neuclear.xml.XMLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Sample ReceiverServlet which sets itself to listen to MessageSenderReceiver.
*/
public class SendMessageServlet extends ReceiverServlet{
public SendMessageServlet() {
setReceiver(new MessageSenderReceiver());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter out = response.getWriter();
ServletTools.printHeader(out,request,"Creating Message");
Identity userns=(Identity) request.getUserPrincipal();
String recipient=Utility.denullString(request.getParameter("recipient"));
String subject=Utility.denullString(request.getParameter("recipient"));
String message=Utility.denullString(request.getParameter("message"));
try {
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
builder.sign(getSigner());
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
SignedNamedObject sig=sigreq.sign(getSigner());
out.print("<form action=\"");
out.print(userns.getSigner());
out.print(">\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
out.print(Base64.encode(sig.getEncoded().getBytes()));
out.print(" type=\"hidden\"><input name=\"endpoint\" value=\"");
out.print(request.getServletPath());
out.print(" type=\"hidden\"></form>Transfering to Signing Server");
out.print("<script language=\"javascript\"><!--document.forms[0].submit();--></script>");
} catch (NeuClearException e) {
out.print("<b>error:</b>");
e.printStackTrace(out);
} catch (XMLException e) {
out.print("<b>error:</b>");
e.printStackTrace(out);
}
out.flush();
out.close();
}
}
|
|
From: <pe...@us...> - 2003-12-16 17:55:10
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample In directory sc8-pr-cvs1:/tmp/cvs-serv13681/neuclear/id/sample Log Message: Directory /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample added to the repository |
|
From: <pe...@us...> - 2003-12-16 17:55:01
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id In directory sc8-pr-cvs1:/tmp/cvs-serv13568/neuclear/id Log Message: Directory /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id added to the repository |
|
From: <pe...@us...> - 2003-12-16 17:54:46
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear In directory sc8-pr-cvs1:/tmp/cvs-serv13543/neuclear Log Message: Directory /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear added to the repository |