#################################################################################
# #
# Copyright (c) 2009 TXT e-solutions Spa #
# All rights reserved. This program and the accompanying materials #
# are made available under the terms of the Eclipse Public License v1.0 #
# which accompanies this distribution, and is available at #
# http://www.eclipse.org/legal/epl-v10.html #
# #
# This work was performed within the GEMOM Project (http://www.gemom.eu) #
# and partially funded by the European Commission's #
# 7th Framework Programme under contract ICT-215327 #
# #
#################################################################################
# #
# Title: #
# GEMOM Authentication Libraries #
# #
# Authors: #
# Domenico Rotondi - TXT e-Solution Spa #
# Cristoforo Seccia - TXT e-Solution Spa #
# Leonardo Straniero - TXT e-Solution Spa #
# #
# Description: #
# These libraries have been developed within the GEMOM European #
# FP7 project (http://www.gemom.eu) to support information cards #
# based authentication within non-web applications (which are #
# natively supported by the Higgins Framework - #
# http://www.eclipse.org/higgins/). #
# Using these libraries both C++ and Java client or server #
# applications can be developed. #
# Additionally, on the client side, both non-web applications #
# that interact with end-users and non-interactive applications #
# can be developed using what we call "High Level Client" and #
# "Low Level Client" libraries , respectively (the High/Low words #
# are there for historical reason, they have nothing to do with #
# libraries complexity or features!). #
# #
# The libraries are provided with the same Higgins Framework license #
# to further spread the use of this framework even outside its #
# natural scope. #
# #
# Please refer to the "NOTES" section below for further details! #
# #
#################################################################################
---------------------------------------------------------------------------------
FILEs STRUCTURE
---------------------------------------------------------------------------------
On this web site you find the following basic file structure.
1. (FOLDER)->C++ Version
------------------------
1.1 (FOLDER)->Client Side
-------------------------
1.1.1 (FOLDER)->High Level Client
---------------------------------
1.1.1.1 (FILE)->Gemom_C++_Client_UI_Auth_Lib_VX.Y_src.zip
1.1.1.2 (FILE)->Gemom_C++_Client_UI_Auth_Lib_VX.Y_doc.zip
1.1.1.3 (FILE)->Gemom_C++_Client_Demo_UI_VX.Y.zip
1.1.2 (FOLDER)->Low Level Client
--------------------------------
1.1.2.1 (FILE)->Gemom_C++_Client_Auth_Lib_VX.Y_src.zip
1.1.2.2 (FILE)->Gemom_C++_Client_Auth_Lib_VX.Y_doc.zip
1.1.2.3 (FILE)->Gemom_C++_Client_Demo_VX.Y.zip
1.2 (FOLDER)->Server Side
-------------------------
1.2.1 (FILE)->Gemom_C++_Server_Auth_Lib_VX.Y_src.zip
1.2.2 (FILE)->Gemom_C++_Server_Auth_Lib_VX.Y_doc.zip
1.2.3 (FILE)->Gemom_C++_Server_Demo_VX.Y.zip
1.3 (FILE)->Utils.zip
2. (FOLDER)->Java Version
-------------------------
2.1 (FOLDER)->Client Side
-------------------------
2.1.1 (FOLDER)->High Level Client
---------------------------------
2.1.1.1 (FILE)->Gemom_Java_UI_Client_Auth_Lib_VX.Y_src.zip
2.1.1.2 (FILE)->Gemom_Java_UI_Client_Auth_Lib_VX.Y_doc.zip
2.1.1.3 (FILE)->Gemom_Java_Demo_Client_UI_exe.zip
2.1.1.4 (FILE)->Gemom_Java_Demo_Client_UI_src.zip
2.1.2 (FOLDER)->Low Level Client
--------------------------------
2.1.2.1 (FILE)->Gemom_Java_Client_Auth_Lib_VX.Y_src.zip
2.1.2.2 (FILE)->Gemom_Java_Client_Auth_Lib_VX.Y_doc.zip
2.1.2.3 (FILE)->Gemom_Java_Demo_Client_exe.zip
2.1.2.4 (FILE)->Gemom_Java_Demo_Client_src.zip
2.2 (FOLDER)->Server Side
-------------------------
2.2.1 (FILE)->Gemom_Java_Server_Auth_Lib_VX.Y_src.zip
2.2.2 (FILE)->Gemom_Java_Server_Auth_Lib_VX.Y_doc.zip
2.2.3 (FILE)->Gemom_Java_Demo_Server_exe.zip
2.2.4 (FILE)->Gemom_Java_Demo_Server_src.zip
3. (FOLDER)->Client Configurator
--------------------------------
3.1 (FILE)->Gemom_ClientAuthentication_Configurator_VX.Y_exe.zip
3.2 (FILE)-><Gemom_ClientAuthentication_Configurator_VX.Y_src.zip
4. (FOLDER)->Documentation
---------------------------
4.1 (FILE)->GEMOM_Using_SmartCards.pdf
4.2 (FILE)->GEMOM-Client-Authentication-Library_V1.0-Installation_and_Configuration.pdf
4.3 (FILE)->GEMOM-Client-UI-Authentication-Library_V1.0-Installation_and_Configuration.pdf
4.4 (FILE)->GEMOM-Server-Authentication-Library_V1.0-Installation_and_Configuration.pdf
---------------------------------------------------------------------------------
NOTES
---------------------------------------------------------------------------------
The current authentication libraries are based on Higgins Framework 1.1 M7.
The C++ versions are JNI wrapped versions of the Java counterparts.
Each implementation provides two different libraries, the first one is needed for
the Client side (points 1.1 / 2.1) and the second one is needed for the Server
side (points 1.2 / 2.2).
Of course there are no constraints on using the same language on both the client
and server sides.
As indicated above, on the client side you have to use the "High Level" library
(points 1.1.1/2.1.1) if your application needs to interact with the end-user
(like using Microsoft CardSpace or Higgins Framework), or the "Low Level" one
(points 1.1.2/2.1.2) if your application does not interact with end-user but
still wants to use an information card to get an authentication token from an STS.
The Server authentication Library provides facilities for a Service Provider to be
engaged in the authentication transaction as envisaged by the Information Card
specifications (i.e.: provide the service authentication policy, receive and
validate the authentication token).
These libraries have been tested and used both with username/password based
Information Cards, as well with X509 certificate based ones.
The "High Level" library was successfully used both with X509 certificates
managed on the PC, as well as with certificates managed by smart cards
(but using Microsoft Card Space for Information Cards selection!).
Each libraries has it's own demo application:
. The High Level Client Authentication library Demo - (1.1.1.3; 2.1.1.3)
. The Low Level Client Authentication library Demo - (1.1.2.3; 2.1.2.3)
. The Server Authentication library Demo - (1.2.3; 2.2.3)
IMPORTANT: It's required to have installed the JDK (or JRE) 1.5.
---------------------------------------------------------------------------------
NOTES for C++ Version
---------------------------------------------------------------------------------
Each C++ libraries has it's own Doxygen documentation:
. The High Level Client Authentication library Doxygen - (1.1.1.2)
. The Low Level Client Authentication library Doxygen - (1.1.2.2)
. The Server Authentication library Doxygen - (1.2.2)
For each C++ demo we provide both the source code and the exacutable applications.
Please read first the "README.txt" file contained in the "Release" folder of each
demo application to retrieve all the required libraries. Basically, they consist
of two DLLs: the associated authentication library and the log4cplusU. The
log4cplus library can be freely downloaded, however in the "Utils.zip" file
(point 1.3) you will find the compiled DLL and a default log's properties file.
N.B.:
=====
The source code, both for the demos and the libraries, is provided as, and has been
tested and used with, Microsoft Visual Studio 2005 projects.
---------------------------------------------------------------------------------
NOTES for Java Version
---------------------------------------------------------------------------------
Each Java libraries has it's own JavaDoc documentation:
. The High Level Client Authentication library JavaDoc - (2.1.1.2)
. The Low Level Client Authentication library JavaDoc - (2.1.2.2)
. The Server Authentication library JavaDoc - (2.2.2)
For each Java demo, we provide both the source code and the exacutable
application.
Please read first the "lib.txt" file contained in the "lib" folder
of each demo application to retrieve all the required libraries.
Basically, they consist of two JARs: the associated authentication library and the log4j.
If you wish to compile or modify the authentication libraries you'll need to
download separately all the required JARs listed in the proper "lib.txt"
file.
The source code, both in the case of demo or libraries, is available as an
Eclipse project.
---------------------------------------------------------------------------------
NOTES for the Client Configurator
---------------------------------------------------------------------------------
This is a Java application specifically designed to configure the Client
libraries on a machine, both in the case of "Current User" or "All Users". The
application will guide the user, through a simple wizard, to configure all the
required files (Environment Variable, XML Configurations, Keystore, etc..).
We strongly suggest to read first the "README.txt" file provided within the
configurator, in order to correctly use the application. Even for this
application, the JAVA source code and the executable suite are provided.
---------------------------------------------------------------------------------
NOTES for th Documentation
---------------------------------------------------------------------------------
Within the folder "Documentation" you will find all the relevant documents
(point 4.). We strongly suggest to carefully read these documents in order to
have a good understanding of the entire scenario.
N.B.:
====
Please take into account that the provided documents may contain references to
ZIPs or other files as available in the private section of the GEMOM project
web site. Therefore, all those references have to be reviewed taking into
account the information provided above!
*********************************************************************************
_________________________________________________________________________________
Please note that this is just a description of the provided files that doesn't
explain details (architecture, features, etc...). We strongly suggest to first
read the provided documents, before installing and or using the libraries.
_________________________________________________________________________________