summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/openslx/imagemaster/AppTest.java
diff options
context:
space:
mode:
authorNils Schwabe2014-04-25 14:28:56 +0200
committerNils Schwabe2014-04-25 14:28:56 +0200
commit40d528627efc309681496b47d66558e15eb3fe5e (patch)
tree4cb7ba77b4b55ecb0b29a734c782b68d6926d441 /src/test/java/org/openslx/imagemaster/AppTest.java
parentAdd FTPS to MasterFtpServer (diff)
downloadmasterserver-40d528627efc309681496b47d66558e15eb3fe5e.tar.gz
masterserver-40d528627efc309681496b47d66558e15eb3fe5e.tar.xz
masterserver-40d528627efc309681496b47d66558e15eb3fe5e.zip
Finally: Add _real_ server authentication. (this challengeresponse thing)
Diffstat (limited to 'src/test/java/org/openslx/imagemaster/AppTest.java')
-rw-r--r--src/test/java/org/openslx/imagemaster/AppTest.java148
1 files changed, 17 insertions, 131 deletions
diff --git a/src/test/java/org/openslx/imagemaster/AppTest.java b/src/test/java/org/openslx/imagemaster/AppTest.java
index 291206b..2b20b77 100644
--- a/src/test/java/org/openslx/imagemaster/AppTest.java
+++ b/src/test/java/org/openslx/imagemaster/AppTest.java
@@ -1,38 +1,25 @@
package org.openslx.imagemaster;
-import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.ConnectException;
-import java.net.SocketException;
-import java.util.Date;
-import java.util.UUID;
+import java.security.InvalidKeyException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SignatureException;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.CertificateException;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.commons.net.ftp.FTP;
-import org.apache.commons.net.ftp.FTPClient;
-import org.apache.commons.net.ftp.FTPReply;
-import org.apache.thrift.TException;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.openslx.imagemaster.thrift.iface.FtpCredentials;
-import org.openslx.imagemaster.thrift.iface.ImageData;
-import org.openslx.imagemaster.thrift.iface.ImageServer.Client;
-import org.openslx.imagemaster.thrift.iface.ServerSessionData;
-import org.openslx.imagemaster.thrift.iface.SessionData;
-import org.openslx.imagemaster.thrift.iface.UserInfo;
+import org.openslx.imagemaster.util.AsymMessageSign;
import org.openslx.imagemaster.util.Sha512Crypt;
/**
* Unit test for simple App.
*/
-public class AppTest
- extends TestCase
+public class AppTest extends TestCase
{
/**
@@ -61,117 +48,16 @@ public class AppTest
assertTrue( true );
}
- /**
- * Test the authentication
- *
- * @throws TException
- */
- public void testAuthentication() throws TException
- {
- TTransport transport = new TSocket( "localhost", 9090 );
- transport.open();
-
- TProtocol protocol = new TBinaryProtocol( transport );
- Client client = new Client( protocol );
-
- assertTrue( "Could not ping server", client.ping() );
-
- SessionData sessionData = client.authenticate( "ns202", "xxxxxxxxxxxx" );
- UserInfo userInfo = client.getUserFromToken( sessionData.getAuthToken() );
- System.out.println( "User info: " + userInfo );
- System.out.println( "Server address from MySQL: " + sessionData.serverAddress );
- }
-
- /**
- * Test the server authentication and FTP Upload.
- *
- * @throws TException
- * @throws IOException
- * @throws SocketException
- */
- public void testServerAuth() throws TException, SocketException, IOException
- {
- TTransport transport = new TSocket( "localhost", 9090 );
- transport.open();
-
- TProtocol protocol = new TBinaryProtocol( transport );
- Client client = new Client( protocol );
-
- assertTrue( "Could not ping server", client.ping() );
-
- String stringToEncrypt = client.startServerAuthentication( "Test Organization" );
- System.out.println( "Authentication started. Got string: " + stringToEncrypt );
-
- String response = stringToEncrypt;
-
- ServerSessionData data = client.serverAuthenticate( "Test Organization", response );
- System.out.println( "Authenticated and got sid: '" + data.getSessionId() + "'" );
-
- // Create ImageData
- int version = 1;
- String imageName = "maschine.vmkd";
- UUID uuid = UUID.randomUUID();
- int imageCreateTime = (int)new Date().getTime();
- int imageUpdateTime = imageCreateTime;
- String imageOwner = "ns202";
- String contentOperatingSystem = "win7";
- boolean statusIsValid = true;
- boolean statusIsDeleted = false;
- String imageShortDescrption = "EIN SUPER TOLLES IMAGE!";
- String imageLongDescription = "Lorem ipsum dolor sit amet.";
-
- ImageData imageData = new ImageData( uuid.toString(), version, imageName,
- imageCreateTime, imageUpdateTime, imageOwner, contentOperatingSystem,
- statusIsValid, statusIsDeleted, imageShortDescrption, imageLongDescription );
-
- System.out.println( "Created imageData" );
-
- FtpCredentials ftpCredentials = client.submitImage( data.sessionId, imageData );
- System.out.println( "Got FTP credentials. User: " + ftpCredentials.username + ", password: " + ftpCredentials.password );
-
- FTPClient FtpClient = new FTPClient();
- String host = "localhost";
- int port = 2221;
- String user = ftpCredentials.username;
- String password = ftpCredentials.password;
- String fileName = "/home/nils/file_to_upload.bin";
-
- try {
- FtpClient.connect( host, port );
- System.out.println( "Connected to " + host + ":" + port + ". Reply code: " + FtpClient.getReplyCode() );
- if ( !FTPReply.isPositiveCompletion( FtpClient.getReplyCode() ) ) {
- ConnectException ce = new ConnectException( "No positive reply code." );
- throw ce;
- }
- if ( !FtpClient.login( user, password ) ) {
- ConnectException ce = new ConnectException( "Could not login." );
- throw ce;
- }
- System.out.println( "Logged in with user: " + user );
- FtpClient.setFileType( FTP.BINARY_FILE_TYPE );
- FtpClient.enterLocalPassiveMode();
- System.out.println( "Entered PASSIVE MODE" );
- InputStream input = new FileInputStream( fileName );
- System.out.print( "Starting file upload ... " );
- FtpClient.storeFile( "xcvb.vmdk", input );
- System.out.println( "done." );
- FtpClient.noop();
- client.finshedUpload( data.sessionId, imageData );
- } finally {
- if ( FtpClient.isConnected() ) {
- try {
- FtpClient.logout();
- FtpClient.disconnect();
- } catch ( IOException e ) {
- e.printStackTrace();
- }
- }
- }
-
- }
-
public void testSha512_Crypt()
{
Sha512Crypt.selfTest();
}
+
+ public void testMessageSigning() throws UnrecoverableKeyException, InvalidKeyException, NoSuchAlgorithmException, CertificateException, FileNotFoundException, KeyStoreException, SignatureException, IOException {
+ String asdf = "Hallo";
+ AsymMessageSign mySigner = new AsymMessageSign( "ftp", "password", "./config/keystore.jks" );
+ byte[] signedMessage = mySigner.signMessage( asdf );
+ System.out.println("The signed message: " + signedMessage + " with length: " + signedMessage.length);
+ assertTrue("Message could not be verified.", mySigner.verifyMessage( signedMessage, asdf.getBytes() ));
+ }
}