Development of an instant messaging system to enable secure

(
$ (
"
*
! " " #
"
$
%"
#
&
(% (
+++++++++++))
#$
!
%"
'
)
,! " (
$
% $
#
%
* *
"
$%
%
-
! "
&
#$
"" $ % " . (
*
" *
) $)%32
$ 24
%
)
( / $
(122&&&)
$ (
%
6%
&
#
%(("
$ ( *
#
%
)
$ *
#
%
(
6%
$ $ )
((" $
%
%
)
&
#
(
#
#"
$
#
%
*
#
!
$ (
&
(
%$
(
"
$
"
%"
#
#
#
0
$
&
&
! #
%"
(% "
#
&
(% (
$
%
$$
$ &
# 7 (%
%((
#
% !
& 3 #
# $ "
# $ $
,(
& 3
%
*
6% " # $
#
*) 8$ ( &
( $ # $ "" $3 &" * 9
! " " #
(
$ ( *
#
#
( %$
!
"( (5)
!
#$
'
%"
)
#
* *
% $
%
* &
$
*"
( (%" #
$ "
"% )
%
& " 9
* *$
%
!
* %"
$
&
(
%
(
"
(( (
<#
8 (" 9
$
% $ * & * * ( $ ""
%
9
#
$ $"
$%
& $
* #
'
(
*
$
$
%)
& ! 9
$%
#&
$
$
" *
% *
$
";
$
( #
(
&
("
%
$ $
% $%
3 (
%$ & #
)
#
" #
%
(
"
3 #
%
;*
( (%"
& 3;
$
*!
$%
* *
9#
(( 9
#$
)
& "" %
*
$%
((" $
"
! ! & # ""
%
! "!
$
*
("
#
((" $
"#
( #
%
#
*
% #$
#&
*
"" (
#
* % %()
*
!
* *
& 3;
$%
%
$ % "% & %
* *&
* ""
*
!
9
$
6% "
$%
* *
% $
")
:
=
( / $9
%
3
%( !
, ) % ""
( ; %$
! " (
' %8 (" #
)
#
%
#
*%
& " $
$
%*
% *
%
"
"
?)
)'
%$
%
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@
! & )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))A
)?
%$
* *0 5
)))))))))))))))))))))))))))))))))))))))))))))))))))))))A
) 8
* ( %$ ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))A
): $% $ $
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))??
)
!
#B %
;
* C $%
)))))))))))))))))))))))))))))))))))))))))))))))))))))))?
)> , $%
" $
# % "
! " (
" *% * )))))))))))))))))))))))))))))))?:
)>)? 7
7DD)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?:
)>) - ! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?
)>): ! ;
$ ( * " *% * %$
. .)))))))))))))))))))))))))))))))))))))))))))))))))?>
)>)
! &
" $
# ! " (
" *% * ))))))))))))))))))))))))))))))))))))))))))?>
)>)> E
%((
- ! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?F
)>)F
& 3( *
* - ! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?F
)>)@ ,
7
$ !
- ! ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?@
)>)G $%
- ! ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?@
)F , $%
" $
# % " $%
$ 6% )))))))))))))))))))))))))))))))))))))))?G
)F)? H
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?G
)F)
"
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?A
)F): ')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?A
)F)
! &
" $
# $%
$ 6% ))))))))))))))))))))))))))))))))))))))))))))))))))
)F)>
" * ( $ ("
' )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)F)F $% $
% $
&
$"
! % * '))))))))))))))))))))) ?
)F)@ ("
# ')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?
)F)G & ' $
%
- ! ((" $
)))))))))))))))))))))))))))))))))))))))))))))))))))
)@ %
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
:) 6%
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) :
:)?
%$
6%
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) :
:)
$
3 & ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) :
:): 6%
" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
:):)?
*
" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
:):)
" *
* ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
:):):
$ !
&
$
$ ))))))))))))))))))))))))))))))))))))))))))))))))))) >
:):)
!
$ !
$
$ ))))))))))))))))))))))))))))))))))) >
:):)>
" * % #
* ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
) , * ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @
)?
%$
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @
)
" $
#&
!
$ " * )))))))))))))))))))))))))))))))))))))))))))))))) @
): *
*
& " )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @
) , ("
* " % ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) G
)> $%
$
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) G
)F $% $ !
&
$
$ )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A
)F)?
( $ ("
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
)F)
*
$% $ !
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):?
)F): $ ! *
$% $ !
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):?
>
)@ ,
* ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):?
)G
$ $ % ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
)A $% (" )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))::
>) ("
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
>)? ("
$
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
>) 7 # *% *
&
! ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):
>): $% *
($ &
! ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):>
>) 7 # *% *
I' ! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):>
>)> *
*%
"
&
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):F
>)F $% *
$
$
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):@
>)@
* ((" $
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):G
>)@)?
' *
8 $" )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):G
>)@)
* $" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))):A
>)@):
7 !
"
#$
# $ ))))))))))))))))))))))))))))))))))))))))))))))))
>)@)
7 !=
& $" )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
>)@)>
7 !
"
! $" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
>)G 7
* *
#"
3 *
& "
" )))))))))))))))))))))))))))))))))))))))) ?
>)A %
*
*
/ #" &
$%
$
$
)))))))))))))))))))))))))))))))) ?
F) $%
* ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
F)?
$%
($ &
! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
F)
# *
# " )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
F):
*
$%
$
$
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
F) 7"
$
% $
!
! ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) :
@) 7 $"%
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
@)? %
& 3 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) >
@) %
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) F
" * ( ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) @
((
8 ;. / $ $
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>
((
8 ; %$ 7
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>:
)?
. .#
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>:
)
. .
$ ( ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>
): ' *
8))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>>
) ' *
8))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))>A
)>
* )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))F
)F 7 !=
& ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))F>
)@ 7 !
"
# $ )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))F@
)G 7 !
"
! )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))FG
((
87;
%$
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@
7)?
%
6%
1 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@
7)
%$
# % 1 )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@
((
8,J !
%$
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@?
,)?
%$
#
!
%()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))@?
F
$%
&
* * 0 5( *
9 %$
( !
$
" 9
! ( !
8
" ( (%" # " % % )
& ! 9
$ (
%
#
# $
% $
!
9
$%
&
#%""
%
<
& 3;
$%
$ %$
&
("
%*
%
3 # ! *$ #
"$ (
#
*
B
$ ( C %
#
" $"
& 3) 7%
#&
"" & %
#"
( $ (
# & "" 9 " ! *
*
!%"
"
! %
B /
C( *
)
9
& ! 9
6% $3" ! "! #
* #
! "% " $
% $
"
$
"
!
%
)
9
&
%
& "
(
"
! "%
& ( ("
$9 ( ! *
";
$
% $
K #
; "
$
## $ !
(
$ "" 9
"" & *
%
(
!
$%
("
)
%""
") L?M # %
(
& 3(" $ %
##
# % *
!
"
#$
% $
&
6% $3 (
*
#
3 & *& & ! " "
*!
)
=
3
* *
& 3N
$
="
&3 L M $ !
&
$
"
#% < #
"& 3$
% $
$ ;
$ %" * 0" *
% 5
* %( & 3 &
%"
3 * 0 ! % 5)
$ (
$
%"
"9
&
$
$
% $
& 3 &
$ "" *% &
" $"
& 3<
& 3
"
" L:M
&
$
%
## $ ! "
" & 3
*
&
*" ""
%
) 7" " 9
#$ "
$
( !
% #
* * "%
$
%
$% " & " & )
"
*
!$ ( !
B" % $ * ( C #
( *
#% % ((" $
";
* 9 % "
$ ""
*
$
& 3 " 3 *
$
% $
!
* !
%$
! %
# #
%
$
( !
*
*
## %
%
$%
*
% 9
%
$
%
% $
$
!
%
#
#& <
!
;$ #
$ *9 $ ""
&
)7 (
& $ $ %
"
( / $ 9 8$ *
%* # "
"" (
#
! $ & "" !
%*
$ (
)7
6% " 9
%
#
% $
#&
*9
!
#
# ( %$ )
%
! " (
)
@
%"
(
*
$%
(
%
" #
"
#
•
•
•
•
•
( / $
1
! & 8
*
* *
9
%"
" $ % " " *% *
$ 6% #
* *
*
% " $ $%
$
! " ( & 3 *
* *
! " (
##
$ (
G
$% #" &
!" ( *
$%
("
( !
$%
#
%
'% (
'%$
E
)
&
*
."
L M
%
B
&
( (%"
$
#
; $
% 8 $
$ " * C)
9
B "3C
B& C #% $
#
; ;
$ !
!
! " "
O#
" &
) %" ;
%
8 $ !
%((
$
" ?AA C
" $
0 759 & $
( $ "" ! "! * %( # %
% 3 &
$
& $
%
( $%"
($
)
The IM systems of today focus upon allowing a user to converse with known
contacts. Each user adds a person they wish to converse with to their ‘buddy list’,
and this reciprocal action allows each contact to appear online and available for
conversation when the other contact logs in. For privacy reasons, there is the
provision to ‘block’ another user from initiating a conversation by appearing
offline, if a conversation is not wanted for whatever reason.
'%' +,
&
" *$ " #
( / $ #
( )
$ !
$"
($ %
( !
&
! "%
"
$
#
8
*
& 3
9
! "%
( !
!
%
# # ; ; & "
& " ;%
*
'9
( $
#
* * !$
*
*
#&
# &
!$
$
$%
" " )
$ (% 9
%
$ " *
**
*
% 9&
" 3 $
(
"$
$) '
!
#
(
#% $
"
# #"
" !
/ $ (
6% %
$%"
9 # 8 ("
" %*
#
$ (
"
&
& %
'
* % *
&
" **
(
*
*
#
$
! " "
! " L>M)
(
$
";
;
!
*
;$ #
#
% & %" " *
" 3 * %
$$ %
##
'%
9
$
* $$ % %
*
9
#
&
$
;
"
$
$ (
%$ &
"
!
$ !
$%
)
( !
( $ %
$" C
&
&
"
#$
$$ %
"
)
9
9 )*) #
$ !
%
" $3 #
(
"
"
& (
$$ ( $ #
& 3(" $ )
* *
&
%(
& " C "
*#
$ "
%
%$
'
9 -).)
"" ' $ 9
%*
"
* $ (
( !
$
% $
& 3
(
LFM)
= ""
#
9
(
"
%$ # $
*#%
(
"
( # )
A
#&
$
& 3
)
(
%
%
" $$ %
$ (
*
* #
9
" *
&
)
%
* 7
#
%"
" $3 #
( $
(
"
#
*
$
%$
"" & %
%
$
( (%" (
*%
)?
(
" &
"" 9 & $
$
" #
""
*
"
&
(
/
(
* *
!
*
* ( / $
# * L@M9
# %
! " (
##
%$ 9
8$ ""
( $%" #% $
"
#&
*
%$ # * &
( / $ $%
" %
! " (
9 &
(
" )
8 (" # %$
*
* $%
" %((
*
* * ((" $
&
-!9
& 3 *&
##
(
*
*! *
* 2%
#$
&
)
$"
((
$ "
# ""; ;
" )
9
%
#
! " (
(
%$ &
%$
%$
& $ $
%
$ % *
( / $
* "
# " ! &
$ )
%$
% $ #
% 8 $"
&
& $ ! )
O ' (
!
& 3
!$ )
$
*
" *
*
( (%"
"
?
(
&
(
"
#
( $%"
%$
"
#
* *
* "
$ !
$ LGM9
%" (
$ "
*
) '3
##
"%
# ( ("
$ $
%
LAM9
B
#
*
8$
*
(
* 9(
$ "
(
& (% " $
$ 9
%$ 9
!
.
0. !
* *
. .9 $ /% $
&
*
& $
& ! 9
((" $
$
%"
$"
%
! " (
%$ %
$
#
% ";
-
&
5 L? M
(
%$
% " *
( !
B
C
(
%$
$
";
* )
$"
#
"
(% " $
((" $
)
((" $
&
I')
( / $
*
"
$
% $
9
C)
!
"
&
#$
;
$ <
#
*%
#
( / $ #
(
B !
& "C< #
8
* ( ; %$ ( $ # #&
"
! " ( 9
$ %"
*%
& %"
#$ "
;%
$
;&
((" $
$%
# % 9
( *
*
*
#
* % %() & ! 9 (
%$
%$
%$ # * $
3
% $
#
!"
9$
$
$%
#
$ 9
$
$
&
# $
$ " (% (
%
)
# 9
%
C
(
! " (
*
((" $
(
"
# 8
* $ 9
8
*
8
* ( ; %$
* *
!
%"
&
"" &
#$
"
( / $)
'%B
( (%" $
$
((" $
$ (
%
*
$%
%
"
#
# $ (
8
* 9
# & "")C L??M
*
!
& "";(% " $
$%
"
* 9 & ""
( (%" ( ; ;(
$"
%$
HP )
9
'
&
# $
"
( $
%## ! #" & $% !%"
" L? M9 & $
$ %" "" &
$3
! & "
$ (%
*
#
( *
$
" 9
3 *
$" C $ (% !%"
"
/%
%
$
%$
$3 )
#
(
"
•
3 #$
$
#
$
"
•
$ $
9
%
#
(
%
#
$%
1
' * " 8( %
("
$ C %
$ !
"
" $ !
(
$%
" #
% $
! " "
%
$ % ""
" *" !
3 #
$
" 3*
"
# & ""
3 $
" $ ""
*
)
" **
$
& $
??
$
(
"*
"
$"
(
$
& )
$
"
# "
B ##
! 9
%
#
*
$
9 & $ *
!
C
)
•
6%
*
2
( #
$
#"
(
%
•
.
$
&
$ (
*
9
3 #
* *
#
*
$
$
#& )
$% #
& 3 $
*
* #
( ; ;(
* & )
. $$
&
0
#"
C
#
8( $
%
#&
%$
"%
)
"%
$
$" # % " 3
C
&
)
%
(
" 9 8
$ ( )
%
("
*
%
"
'! 7
&
#
3 *
" #
& $
! #
(
)
%
(
% #
&
9
" *
/
%
*
)
$
%
%
#! % &
" %* "
$%
"
( #
(
!
( (%"
#$
C
;
$%
"9
! %
:
*
%
$
#
"
/2
*9
$3
( # *
9
(%
$ L?:M9 &
Q#
"
8 9 "" & *
%
(
K
! $$%
3 %
)
#
% .
% C $
#
$
$ (
$ (
$%
# % )
& ! 9
# #
%
$
% $
/
(
" #B %
;
* C
"%
9
#
& $ ( ! *
$% 9 & 3
$
")
$
(
!
%
* & 9
)
(
! % (
$$
*
1
L? M
*
$
("
& 3
$%
$ ( %
&
%
$ (
#
% %
( ) 8
%*
%
! "
$ $
$3
(
'2
$
$
.
;! % ( *
'%. "/
*
(
( (%"
#
$
*
$
! (
9( &
( !
(
"
$
"
! " *
(
"$ %
•
&
#
$"
/ $3
9
%
$%
#$
!
%
( !
"
$
" *
B&
C9
##
#
%$
! %
*
*
"
" #
$ (
& "" (
$
"
!
% $
!
#
:9
"
/
( !
! "
* 9 (
( ! B % #
# # 9 (% " $
* *&
%
! $
"C L?>M)
%$
( !
$ ( C #
#&
%
#
* *
$ ( 9
#"
# 9 %
%$ *
3 #
("
$
%
$
*
$ (
$
9&
$ (
; "
9
(
" %
%
#
& 3(" $ )
?
(
%$
"
B( ;% C
9 %
#%""
( " "" &
$
"
&
( !
! 9
$ * %
$ ! * $%
$
# "" $ (
$
$
! )
'%3
&
$ !
" *% * &
! " (
& )
$
•
•
•
•
%
'%3%$
&
& $
#
! " (
"" & *
% ) 3
#
"
! " (9
(
% " " *% * #
9
# " *% *
&
%((
( !
E ( $ "%
# $ 0E
& 3( *
*
,
$
$ !
$%
7
6%
&
* (
" *% *
7DD
-
) & ;
" !
* *
& ""
(
"" " ** *
% $
% *
&
#
6%
$
9
%
%
"
! &
( $
#( *
(
*
((" $
";
" $
# #&
&
)
& ""
# 1
5
" 9
$
" *% *
%"
( !
*
%((
#
*
#
)
(% (
#
$
! & (
"
& $
( / $
! " ( 9 %$
* ;" ! " " *% * 79
!) ! ;
$ ( * " *% * %$
. .
"
$%
)
& 44
7 " *% * &
! " (
%
# &
* (
*
" *% * 9
&
7)
7
%
$
" %
#% $
7$ (" )
. " L?FM ##
*$
/
% %(
( *
*) 7DD
*
" *% * %$
- ! 9 "" & *
'3 7 $
$
$ &
/ $;
# %
"" &
$
&
" ! " ((
H *
$ (" 9
$
(
"
#
# %
(
8(
#
&
!
" &
8 #(
$
( *
(
?:
,
$
"
" *% *
7
7
$ )
( (%" *
#
"
" (% (
%
* * %( #
9%
""
7DD9 & $ &
!
# 7
"" &
/ $;
" ! "# %
#7
*
$ % "$
&
/ $;
;" ! " ("
"9&
$
(
"
( " )
" (
" ! "
$ )
"
"" &
& ! 9
( *
( 8
% (
*
3 # ( *
-!
)
(
" %*
((" $
8
%
" *% *
#
#$
#$
# 7
" &;" ! "
" $
$ #
$
)
9 ( *
%
&
" 3) $
$%
#
%*
%
#(
9& $
%
$
*
* $ "" $
$" 9 %
7& $
#
$
" *% * %$
7
! - ! C $ %(( # $
9 ! " (
( %$
%$
$"2 3 !
$ %"
&
7 " *% * 9
*
% L?@M
$
$" 0
" 7
' *% * 5
# $
"" *
8
* ((" $
9& $
*
&
O;=
&
8
$" &
$
#
( "
9 ( !
( *
*
#
! " ( *
% *
((" $
)
/
!
" #
*
7 " *% *
! -!
$
* ;" ! " " *% *
("
" *% *
& $"
$
$ (" 8
# 7DD9
"
* #$ " #
" *% *
( (%" $ $ # *
! "
*
*E
*
# "
" )
(" $ ( *
39
"3
%" * %
* ( $ " %
(
). *
&
9
7&
*
(%
& ), (
%
-!9
$
(
)
7 %
6%
"
'%3%'
" * L?GM
$
-!
/ $;
" *% * &
8
"
79
& $
$ ("
$
%
! %" $
) " %*
$ $%
%"
$ (
! " " & %
* ( *
9 *! - !
!
*
( *
$
%
$ $% ( !
! %"
$
0 - 5
"" )
#%
" # "" & ( *
&
%
("
( $
#
$
#
( $%"
(
*
J
(
"" * (
# -!
# B=
$ 9 %
&
C)
*
! *
#-!
%*
$
#
$
"
"
# (
"" $
)
%$
E # 3 "
( ##
•
•
•
•
•
$*
%
7
*
%
%"
*"
L?AM "
" 9-! ( *
8$ ( )
( & #%" " *% * 9 & "
# %
# 7DD
3 #
#
( *
-!C
* $ "" $
$ $3 *
$ J $"
*" ( " *% *
*
8$ (
" *
6%
%
*
#
;( !
""
*
$
" * &
" 3
J( !
%
*&
?
# ( *
*!
% 8( $
#
$
9
*
*1
%##
!
J
%
/%
!
# ( *
* " *% *
#9 $
(
""
"$ % ) - ! "
&
& "
$%
!
0
-! B
8C5 &
2&
$ (% C
!
# $
$
$ %
#
( *
& $
( *
$
%
*
$
(
9&
&
! %)
(
$
$%
"
%
(
*
%
(
$ #
& 3)
* *
# . & $ ( !
%(( #
& * ( $3 * # E
! " (
& 3 *
$
$ !
( $ ! " )
'%3%! ;
1 &
$ ( * " *% *
$3
)7
.
! " (
$
'%3%.
&
%$
<
!
%$ $
$
. .
.
%
$
&
&
' ( * 9 # % * I'
* %
(%
! *
")
$
("
%
("
'9 & $
# & (*
#
. . $ (
$
$
$
)
$%
( ! % $
. .9 " %*
( !
B
C
* *
)
)
&
$
/
$ &
(
! & *
;( &
(
%
#$
-!
" *% * $
&
* #
& 3 *2 I' .
&
8
("
#
"
#
&
. .
! ;
$ ( * " *% * ( !
((
%((
";
$
% $
#
& "")
& ! 9
" *% *
# %
( / $9
%
& "" !
%
"
*
#& )
-!
" #
7 7DD
%
# %
%$
(
(" #
%
$
*
$
( *
( %$ !
()
(
"
#- !
!
*
$ $ % & ""
%
(" #
# %
$"
#
("
"
$ ((
! " ( ( / $
-!
.
%$
! " (
( *
*)
# "" & *
3
#
$
( *
&- ! ( !
%(( #
* *
$
$
$
&
&
%
*
#
$ ! 9 %
!
* #
% *
( *
* " *% * %
#$
"" $
(
)E
* $ "" $
%$
%
* "" % %
%9
727DD E &
#
=
&
% "
(
"
*
#$
#
)
#
#
* #
$%
%$ #
" " *% *
! " (
<
$
9
* $%
"
%(( #
&
$
" 3
$ #
( ! %"
#
* " *% *
" ( !
*
% )
?>
*
#
3
%
'%3%3 !5
. %
& *9
""
&
$
#
(
$
L M *!
*
( $3 * %
= $
(% (
(
)
!
/ $
(
! ! & #
$
E
(
$"
#
$ (%
$
$ (
$"
&
$ #
= $ (
$
! (" #
$
)
7
/ $ $
& $ " %
* * !
!
-! E
((" $
%
$ (
# !
/ $)
& * ##
•
•
# "" & *
$ $"
*
/ ! ) & )7
! % #
! & *
$
(
*
!
&
/ $
-
=
9
&
$ (
(" $
%
!
((" $
!
"3 0 = 5
%
9
$"%
$
#
*
$
(
&
$
) %
! & * $
"
%
& ! 9 ( *
& $ %
%$ 9
" ! " " *
%
#
#
$ $ (
) & (
" #
- ! C %((
# E
( *
*
$ (
&
/ ! 8) & *)-7 (
•
$ =
&
-!)
( *
! & *
$
(
%
#
$"
!
9
E
<
9
&
&
! E
/ $ 9
$
)
9
9 ( $ ""
%
$
& *&
# $ $
*
(
! (
*
/ $
8
"* & *
)
= 1
'* & *
("
#
$ (
$ *
!
&
&(
/ $ &
9 % % *# &
%$ )
"" & * $ (
#
7
9 ! $ (
$
%
$
9 # 8 ("
%
$ $
* )
& *C " * & * $ (
" "" & ( *
$%
" 3
# " #
((" $
(
#
(" #
( *
8 $%
9 %
$
" $
(
")
'%3%6 7 ) 8
- ! " *% *
( $3 * ( ! *
$ (
& 3)
" L ?M
3 "
O<
"" &
% (%
& $
*
$ (
B (
( $
&
$"
" 3
( )
#(
$
!
) # (
*
"
%
( *
$
&
&
& 3 *#
( *
# (
& 3$
&
$
9&
% $
$3
$
$
/!)
!
#
(% 2
)
$3
( $"
$" C)
! $ 9& $
#
"
$
*!
(" $
!
$
?F
( L M9 & $
%* & $ $
% $
( !
( 9
-! ( *
( !
&
$
$3
$3
$
#
& 3 #&
% #
( * ) -!
$3
!" $
%
) ! " $3 $
$
(
!$ )
$"
! $
% $
!
$" < $
%(9
! $ %
#
)
" $
% $
(%
.
! " (
9 "" & * %" (" $"
%
"
* B
C #
(
$ !
'%3%9
-! %
( !
$$
-, 7 0- ! ,
7
$ ! 5
I'
(
9&
!
$
$ "#
"#)
<
& "" $
&
, 70
*
& "
*
! #
#
(
!
%"
& $ $
$
# $$
( ; %$
!
$ "" B
I' 7
$ 2-C)
, !
* $" 9 & $ $
%* I'
)
$
9
% )
( "" %
(
-, 7 (
$ "# -!
( $3 * $
&
-, 7
(
$
$ ! 5 ! 9
% )
I' 6%
I' ( !
$
$
!
$
& "
&
!
9
-, 7
! " " #
"
# %$$ #%"
#
!
*
J
& "
$ &
'%3%:
"
*
"" %
-! ( *
$
$ "" "
- ! $"
#
!
#
%$ )
$"% % ; %
%$ 9#
8 ("
&
$
$
$%
& 39 & $ $ %"
#
"$ % $
&
*
$" C
$ (% )
& " %
8 (" # % ; %
-! ( *
%
*
$"
$
- ! ((" 9 - ! ( *
&
& (* # & $
$" C &
&
& "
$"
%
)
"
& 3&
$%
$
(
"
6%
#" )
-! ( *
(
&
B
8C)
•
•
•
9&
9"
$
$
$
&
% ; %
( *
$
(
" $
$%
("
#
$
*
!
(%
&
$
9
9
& "
3
#- ! < & ! 9
#" 8 "
(" $
"" & % ; %
$
%
-! ! %" $
0- 5)
("
-
9% ; %
%
9% ; %
$
"
"
$
$$ ( $
#
*
$
*!
$
$
$
!
#
$ $$
("
*
1
#"
$
#
9
$
(%
% " (
$
"# ( #
*
$
! #$
%(
$" <
( $ % ( !
8 $% *
$
" !
!%"
"
$39 #
8 (" ( *
?@
"
&
*
! #" &
(
*
$3
"" &
% ; %
$
$$
'%6
#
$% &
/ ! ) $%
( $3 * 9 & $ "" &
! # % *
/! 3 ( *
* 3
$
"" & %
&
&
%
!"
* " * % # %
<
$
#%"" $$
-! . )
& ! 9
$
#
&
% )
/ ;
( / $
9
$
&
$
&
#
C
)
- ! ?)? ( !
$"
* "" *
* "" * #" )
& "
$
# & " $"
&
% &
3
$"
3
3
%
$%
!
&
$%
# $
#
3
(
"
3
*!
( ! %
"
)
%
& 3)
•
%
& "" %
! & * "*
%
$
$
% $ *
% %
R
& 3
" $ %"
#
*
•
•
*
#
$
"
9
%
$
6% &
& $
"&
"" &
(
"$
#
&
3
$ %"
)
$ ( $
$ (
# "
!
! & 8
*
%
$%
$%
& 3
!
1
%
$3
(
%
#
&
"
!
9
$ ! )
"
#
$ 6% ! " " 9
$%
#& )
" $
(% (
% "
'%6%$ <
E # 3 "
( ##
?AG
$$(
%
$
H
%
& 3 $%
(% " $ 3 $ ( * ( 9
H
B $% 3 C !
&
! " (
" * %(
$
! %"
)
$
%
#
H
( &
" )
$% < #
" **
%
& 3) $
$ (
! 3 (
!
$
9
%
$
%
*
$ (
(
# !
!
$
#
!$
& ( &
%
% C ( &
% C ( &
?G
#
(
$(
H
( $%"
! %
$
9
#
%
$
%
* )
'%6%' "
&
"
" * ( *
! 9 "" & * %
$$
3 %$
$ $3 *
"9
"
&
*
& " "
#
&
( &
)
&
%
O
$%
$%
!
*&
*
$"
#
$
!
$
$
% $ &
#
(
" $ (% #
$ (" *( *
) $%
%
$
9
""
("
8 J $"% * %
"
SSH (Secure Shell) was developed as a secure replacement for telnet, combining
all the functionality of telnet with security and added features. Most UNIX servers
support SSH and encourage its use over traditional telnet clients as
communication between the client and the server is encrypted. This makes it
difficult for a malicious user to eavesdrop and steal personal information.
'%6%-
(
(
$ "9
(
$ " ( $#$
# !
)
$3
L :M $
' B $%
9 "" & * $" 2 !
((" $
( !
!
(( *9
( *
*
' (
((" $
$"
(
$ " (
$ " "
! )
#
%
$
9
*
#
$ $3 % )
" ""%
# $ 9 $"%
$
•
'
&
" %
(
& 3 "
.59 ( ! *
# $ *
(
%*
$ #$
' ( !
$ (
$
$
9 % * (% " $ 3 $ ( * ( )
$(
%
&
*1
; ; ;
&
$"
)
("
$3 9
&
$%
("
)
•
#
$ (
#
&
0 )*)
$ !
'$
(
"
$3 9
! 9
& $
$ *
&
#
7.2 .
% $
&
!
%
* )
$
$ (
&
#
$%
(
$ "
%
*
$%
#% $
"
( *
$
3
$3
$ (
$
&
)
?A
$ "
"" $
% $
%
* * "
% $
* &
* 9 # 8 ("
%$ * (
9 $ % * %" (" (
!
$ (
$3
'
5
( ! $ !
&
$
$%
$ (%
$
!
*
(
$%
$"
8$
$
& $
3 *
%
;$
' 0 $%
$ "
( !
$
% $
* # * C)
9
*
9
%$
'%6%.
"
)
%*
/ ;
H
( (%"
& 3 $%
9
$ # ( $ "" $% H
!
(
(
)
( !
$ (
$
% $
! 9 % & %"
% " $ 6%
("
((
( !
%(( # %
$
)
O
'(
%
#
&
$ "
$
$ #
#
$ ( )
# "" & * $
% $
$ "
& '
$
(
""%
&
%((
'%6%3 5 &
(
% $
$ ("
%
$%
#
(
$ ( * (
$
#$
$
!
$%
&
$ #
$%
$
"
3
*
&
& 3
&
(
& (
$%
$ ( * (
#
"*
%
& 3 9 $ #& $
$ (
* < #
3
%
$ (
* 9
%
$ ( )
9
(
"
$ ! $%
*
$
*
( ! 3 ( J
% $
$ (
*
9 %
"
( ! 3 $
$ (
* )
*
( $ (" 9
%$ ;6%
$
$ B "$ C $
( !
*
30
&
# 3
$ ( *
* % *
3C (% " $ 3 9
3 &" *
"
$(
0
35
( ! 3
$ ( )
#$
$
(% " $ 3 &
"
#
! % "9
#
$ #$
%
07 59
$
#$
#
% *7 " *&
(
#
# & $
#$
%
$
""
#%" # $ # $
%
%$
! #9 %
* $ #$
6% )
# ! # *
#
#$
6%
#
*
*
$ #$ 9
7
%
! 3
&
# 3 ;( )
/ &
&
( ;$ # *%
& "";3 & $ # $
%
)
)
7
&
$
(
&
("
9 &
!
9 %
"
# )
*
$
"
%*
%
#
$
3 9
*
$ (
&
* $ ( * ( $ "*
% #
" " *
%
# $ (% * ( &
$ ()
#
( !
$ (
3 J & %
%" 6%
$
'9
* %((
)
$ L M
.% " $ 3
%
%
(% " $
" #
8 ("
( 5
# *%
$ ( #
$"
( / $
% 9( !
$ ("
! 9
- ! " *% * )
&
# (% " $;3
&
#
(
$"
/ &
'%
$
3
$
! 9
$
!" )
* 9
#
%
'%6%6
)
*
$$% &
'
=
$
#$(
%
%
6%
&
9! #$
$%
(
#$ #$
%$ #
8$
*
# (% " $ 3
3 &
3 $
$ &
! 9
#
(
L >M
$
'$(
%
3
(" ,
& 3 ; 3
# '( !
; %"
$ (
9
$ (
)
*
39 * *
8( *
$
=
!
3 )
' $"
$(
%
* #
*
$ ( ) ("
$ (
$
#
)
?FG;
" *
$
* #( $
*
! 9& $
$3 *
$
$$ ( " 7 # $
%
3
%
#
$ (
! K (% " $ 3 0#
*
! %
& ( ! 3
%(
$% $
$ )
' "
( !
(
$"
*
6%
#$ #
$"
! #
07 5 " ) # $$ ( 9
!
$ #$
$ ! #
$ (
$"
*
#
! ; ;$"
'%6%9
$"
%
%
$
$
$
$
$ #$
$"
*
$ (
&
! ( ! % " 5)
3
"#
!
)
(
#&
*9
*%
#
$
% *
$
$ " (% (
)
$ ""
! ##
("
*
'
$ ( * ( "
)
&
! " (
(
"
( !
*
!
' 0
*
("
' (
! 9
! " (
"
#
*
# '& !
:) )
( '
$% 59
3
$ )
& ! !
( (
:)
#
' $
' 9 "
! " (
%
& $
#
% # $
$ "
;
'
( !
#
(
' ( / $ L FM9
! " (
% $
$ ";*
(
%$
"3
' (
$ " 9 & ""
#%"";
* *
" (% (
( / $
*
& " & $
%
# ! "%
9
'
"3
"
$%
)
" %
( !
$%
( (%" &
! $%
'%
$% =
"#
* " $ ""
%" #
*$ ( * ( #
($
#
% #
$
$ "
?
$
% $
&
$"
&
"
* ($ ) ($ ; ' &
! 9& $ &
;&
! "
($
S ")
( $3 *
&
! % *
(
'
"3 9
;$
$ " (% (
)
'%6%:
)
-
(
0- !
("
&
$%
$3
8
' ?) )
' :)
B
-!
$%
$3
8
( !
#
& 3
(
$ "
$"%
#% $
* 9
(
" $"
$% ( * #
(
$ "9 %$
( 8
5 . &
$
0-
-!
!
## $ " - ! &
5
"
$%
$
% $
)
#
-! !
#
'
'
" #
$ (
9 ! %
$
9
*
%
$
)
*9 ! " ( $ ( !
#
&
$"
!
%
*
((" $
# .
$ "0
.59 " 9
.9 !
7.2 .)C
("
$ (
$
$ !
$
$
-, 7
* 9 7
$ 2-9 & $ %((
$% $
&
"# 0
#
-! ( *
$" 5
( #
$ ( " # %
Q $
6% ( $
7
I' &
2- 1
$
•
•
•
?) 9
L @M 1
L GM
( ; 6%
-,H & $ $"%
-!
$%
I' ! $ # *%
%((
$"
$ #$
$3
8
$% $
I'
$
%*
%*
'
I' ! 9 #
)
*
#
' %((
0-
%*
5
$
'%9
"
$
#&
6%
$%
6%
%
#" & 9
! &9 &
!
%
$3* % #
*
%$$
#
$%
! *
#
3 #
#%""
*
* *
("
< "
"%
! ! & # 8
*
$
" *% *
$%
*
$%
)
$ (
%
*
$
9 *
* &
#
#
# "" & * $ ( )
-%
;
-%$
&
;
#&
! " (
*
*
$
6%
)
! ""
!
$"%
6%
$ $ "3
("
#
/
9
#
#%
6%
3
* *
)
<#
•
•
•
•
•
*
" *
$
$
$$
*
6%
" % $
& %
("
3 &
$"% 1
*
%
*
$ !
$ !
#
*
!
" *
-%' 5
9
%
9(
"
%
$ #
% $
& 3)
$
!
6%
%
%$$ #%" $
$$ ("
)
•
%)
%* " %
(% (
#
& ""
& ""
L AM
%
&
"" *
$
#
&
9
#&
*
%" %
$ (( $
%$
" #
$
)
#
$
$
%
"
%
&
!
"
&" * )
# 9
$
!
"
""%
$ % ;$ &
% " " *% *
$ ( )
(% (
#
$ (
"(
$
(
&
* *
)
%
$
$ $"
( /$
%"
! " (
& 3
$
"
8 $" &
( (
&
$
$
$
$
3
&
#
( ;$
( #
% 6%
39
$
$
% %
$
$
& $
%
$
*
* # &
%9
$
#%"# "" #
#
3
8& )
5
&
#
;
&=
%
"
&
%
%
=
%
"
*
/
%
%
& "
(
%
%
)
=
"
3
%
$% "
$
#
)
& $
)
:
*
((" $
$
•
5
&
=
%
%
!
"
%$$ #%"" *
* ((" $
(
&
& "
*
( *
%
#
;
%
(
&
&
#
8 # " 9
(
=
%
%(
%
(
*
"
%
&
)
/
=
" *
$
$
$"
$ #
8
*
" **
("
( &
;
%
$
(
9
("
* ""
)
" *
$
(
"" &
%
)
5
) /
&
=
%
#
$
;
%
$
%
"
" **
* )
&=
" $
$(
/
$
$
*
$
=
$ !
&
$ (% ) .
*
$%
*
•
" *
9
%
" * )
&
•
&
%
&=
%
%
"
3 ()
$
)
5
& &
$(
$ !
%
)
$(
&
&
$
$
%
"
" **
* )
&=
$" $3
%
&
#
*
&
*)
=
$
$
%
/
$ !
C
&
=
;
%
%
&
/
%
#
(
!
*
#
%
)
=
&
& (
%
C $
(%
("
*
* )
•
5
&
=
%
#
%
"
;
%
" **
$" $3
$"
$
/
%
-%-
*
$
=
* &
$
% &
"
$
* )
&=
& $"
3 &
% *
"
%
#
3
" **
( $
)=
)
* *
# 6%
$
&$
##)
#
3
$
%
#
&
$
%
;
-%-%$ 5
&
( ; 6%
"
#
)
%
#B *
C
"
& "
"
2
%
&
# %(
%$$ #%" %
$ ("
) (
%$$ #%" *
* ( *
& "" % %
%
%
" *
* 9
%
<
"
(
$%
(
%
9
$ "" )
9
3
%
-%-%' 5
" * $
( &
*!
%
" "" &
) #
(( %
(
%$$ #%" " * 9 % C
! " " # $ !
9 )
7
6% " 9 # "" &
%
%
$
*
&
$
("
&
("
%
*
%
%
")
%
$
#
$
$
#
#
9
"
(" $
$
% $%
"
" )
B " C %(
%$$ #%" " * )
) /
( ! %"
$%
$ !
$% $ !
-%-%. 5
&
( 9
& %
&
"
#
3
$% )
#
$
$)
&
%
#
$9
(% $
""
-%-%- 5
%
$$
$
"
&
%
9
%
"
/
"
$ !
$ !
*
#
$%
)
-%-%3 5
=
%
" *
& $
$
(%
)
&
$
%
" * %9
* $ (
*
(
#
>
" *
((" $
#
"
9
%
%
*
& * %
""
" **
%
%
9 %
&
/% " **
%
%
((
##"
)
-%.
# "" & * $ (
#
&
* ;" ! "
("
)
((
*
87"
! " (
% " %(
( / $ &
#
%
*
#&
9
6%
& ""
% )
F
6%
"
#
(
$%
$ $"
%
*
&
%$
*
$
#
!
*
.%
.%$
&
"
%
* *
$%
$
%!
* "*
#
(
9 " * &
$%
# %
6% 9 #
& $ -!
' !
6%
%"
$
*
!
$
!
!
#
#% $
"
*
$
8(
("
$
%
%
$%"
*
#
.%'
" $%
" ( *
$
)
*
%" 8
)
! %9
!
" *
! " " )
# ("
%"
)
&&
:9
$ # =
%
#
&
(" #
;
(
( ! %"
* & * ( (%"
#
&
(% (
*
&
$
$%
! %! L: M# %
(
%$ ($ &
F Q # "" &
)
$ /% $
9
""
%
R
( %$
I'
!
$ ( * " *% * . .9
(
%$ B
C
(" $%
((" $
& ($ C
%"
%
3
! 9 &
$%
%"
%$
$% $
% $
)
*
B$ # *%
%"
3 #" #
($ )
$
(
$
# % "$ $ !
#
! 0 5
I'
%* %
)
.%-
&
& )
/
;$
$
$ (
& $
%
$%
%
$
"
! # ( $
*)
(
'
"3 9
($
'% C ($ ; '
3 &
"
)
*
!
! C
($
&
#
( !
*
"
/
L:?M ""%
.;$ ("
$ # *%
#
%"
%
$% 9 (" #
$
#C
%$
%
&
* *
#
#% $
( 3
E
*
$
$
! "!
* " *% *
( / $)
!
$%
%
3 )
$$
*
%
!
"
* " $ # *% "
S " "" & *
C $ (9
6%
#
%(( #
&$ (
%$
!
* 9
&
$%
%
($
%"
% #
! "!
$
$
!
&
S ")
( $
# *
$" 9 & $ & "" $
$ # *%
%((
$%
( $
$
9 "" & *
$% " )
@
&
! #
%$
$
$
$%
% *
S " & $
!
$ # *%
#
!
*
!
$
*
$ #$
$ ( ( !
$
9 %
$
%
%
(
%
$"
!
!
%$$
#%" %
9
% & ""
* ( * ) -! ( !
/
- ! $ ! 0- 5 # " 9 & $ & "" %
#
-! %
!
0- 5
& $
$
& $ (" )
& "
"
""
( $3 *
$"
$
"
$
#"
( $
(%
%
$%
("
*
.%.
=
&
% " *
"
#$
$
# "" &
" )
"
%
* *
9
9 ) " **
$
#
%
"
6%
! " " #
* &
(
$ !
&
)
"%
$"%
# "
(
"
%
%( " * ) & %"
!
* %
(
"
.
#
( $%" % ( # " 9
%
%
* $$ %
%
##
$
)
# %" 9 % C .
$ %"
%""9 % %(
% C .
$ %"
"
#
#
("
$
"" & %
##
&
%
&
"
$ $3 * #
.
%"")
! *
9 & $ ( (%"
"" %
&
.
("
"
$
$ 9
(
" ** * % #
)
.%3
"
-! % *
#" *
.# "
%
! "
%"") 7"
C
#
" *
<
6%
" 9
.
%
%
%"" %(
&
"
%
&
"
$ $
%
"
%
! &9 &
! # %
$%
$
$
#
-! ( *
$
$ !
%*
%
#
-, 7
*
I' 7
$ 2-)
( $
(
I'
*
$ # *%
%((
$% $
$
9& $
%
(
(
'
"3 9 & $ & "" !
""
$ # *%
( ! %" % *
($
%(
,%
*
& ""
" (
$$
#
*
%
& $
((" $
% $
9
#
$
)
1
•
•
•
%
#
#
& $
(
# "
#
"
(
%
" * 9 #
%
$
" * 9&
%
" ** * ##9
# "
$
#
"
(
$%
$
!
%(
<
%
#
.
$
$
" * $
$ ( )
G
*
& $
(
#
# "
%
.
C $
$
%""
"
$
$
! "! ( &
& ! 9 $ " **
9
"9
%
%
%
$
9
*
! %
#
$%
%( " ** * ##9
*
*
$
$
6%
$
( $
*
)
#
(
*" * " &
("
*
(
% $
(
$% 2 (
9
#
$ %"
%
$
#$
*
.%6
*%
%
! )
&
%
#% 9
%" * #
" & 6%
( $
& ! 9
" &
9
#
* *
&
% $
#
" * %"
"# 9
( !
! "% " 9 ""%
*
(
##)
##
$
%
#
%
%$
"#
)
&
& $
%
& < *! % $
" 9
$
$ $
$ !
$( "
$ ! $ !
$$ % )
7
* )?
##
$
$ !
&
&
# "" & * $
1
*
(
$"
;
$"
&
?
$"
?
* )?
! 9
I' ! )
! "!
!
"
" **
$ !
A
)
%(
(
$ !
&
$
$
& 9 $ %
" ** *
" *
*
& $"
N 7" " 9
2
%
!
*
*
%
$
N 7"
&
? $ %"
("
6%
*
%
#
8
.
$
<
&
* %
$
("
! %
)
B$"
#" &
! )
%
$
*
$ !
(
% %
$$%
&
# $"
#
& !
! $ %"
6%
*
"
$"
$
; ;$"
C
!
$
9 $"
" *
?&
! )
(
$"
$(
%*
"
$
! ( !
*
# $ !
"
(
* #
%
" 9
/!)
0
("
$
#- ! C *
.%6%$ "/
"
$%
6%
!
*
$ !
&
$
*
! $
! $" )
9
" )
*
$ !
&
$"
$%
%*
! 9
*
$"
! #
$( )
$ !
! )
!
*
( *
%
( *
*
"
#
$ !
%
$
"
%(
)
&
!
& $
.
9
(
$(
$
$
&
$"
&
( #
$%
"
5 ( $3 * 9
9 $"
9
% $
& $"
"! )
!
$ $3 )
& 3&
$"
$ #
" **
"" &
$
"
%*
& ! 9
$
<%
$$
/ & *
*
& 3
*
((" $
"
( $3 *
M
$
")C
+L
/ $
"9
!
#
#
/ $
( #
# &
! " ( *
?) 7
B ( & #%"
$" 2 !
/ $
$"
" $ ")
((" $
#$
#
$
$
" * #
" #$
%
! " ( *
(% * &
" 9
! 3 *
# "" & 1
8
/!)
)
8(
/ $
#$
("
$"
)
! )
) ,#
:) 7
%
) 7
*
*
% $"
#/ ! )
#$ )
$
$"
9
("
!
%
#
*
)
*
! )
$
/ $
/ $C
( *
& / ! $9
3 "
$"
#
:
/ $
! 9
&
%
("
3
*
$
/ $)
! " " #
!$ )
("
$
$" C #
% $" < &
%
/ $)
3 "
$"
! $
&
% (
>)
%
$
$"
*
F) =
$"
/ $
("
! 3
9
% (
6% #
! 3 *
! 9 & $
"
6%
!
/ $
(
% ! "%
$" )
$
$ ""
#
#
$3
% 9
!
( *
%
/ $)
.%6%'
*
9
%
*
*
#
$(
$
$ !
! &
* 9
$" ;
! &
)
9
"!
&
%$
* & "" %
#$
& ""
"
&
$
$
(
# ) (
*
("
* 9 " * &
$(
% "
*
%
!
"
%
#
6%
.%6%%
%
$
%
%
%
C $
6% #
!
$ ! % *
$ $3 #
%
! ) #
"" &
!
.%9
"
%
*
*
*
$"
;
$(
*
*
(
#
#$
#
("
# ("
$ ""
*
#
%
$ !
*
9
)
!
$"
*
!
&
&
* )
&
*
"
& $
((" $
% C
"
%
#
% %(
$ $
#
( $ $ #
%
%"
*
)
& ""
" %
6%
%
%(
#
)
9&
%
"" 9
"
! "% #
%
( & 9 & $ & ""
%
" * )
& ! 9 & %"
&
"
%
%
% <
"
%
! &
$
*
%
$ (
$
9& $ $
6% *
%
%
#
"
%(
"
%
# "
*
)
"
#
9$
*
$
$ " , & ""
$ *
(
%
%
$ ""
3
:?
#
(
&
*
" )
.
*! %
$
"
&
.%:
/
(
""%
#
"
*
$
$
$
*) )
($
&%
. .#
S "
#
&
*
($
%"
$
&
*) )
$"
$
$
7
(
# $
&
" * #
$ (
%
&
!
$
$% #
*
&
9
*)
):9 ""%
I'
&
*
(
')
%
9
$
I'
$ # *%
&
$"
)
* $% &
&
%*
*
:
#&
)
$% "
. . $ (
$
% $
C ( #" & $
!
( !
$%
* $ $%
2
% $
$ 2-) ,
$% " %
*
#
$"
;
-!
((" $
-, 7
*
I'
%( % " *
*) ):
$"
2
!
$
$% #
$%
$
.%>
$
(
$ (
" *
$%
* "*
3
( !
( !
("
("
* *
?)
&
($
!
)
( %
-, 7
')
) 7 !
$ !
$%
)
& "" $"%
&
!
( (
& "
#
:)
#&
#
)
# "" & *
& ""
$ "
/ # " & ""
* * #&
& 39 & $ $"%
$%
*
%
$%
*
*
%
'9
"
%
&
%
# %;
1
%
!
$
$
$
$$
$% " )
! #
)
" * 9
%
!
I' 7
*
$"
%
$ 2% *
( *
$
( &
I' !
%*
% $
::
!
&
(
& ""
$"
%
$ (
&
% *
*
*- ! C
"
( $3 * )
3%
3%$
!
&
9
*
*
((" $
& $
("
*
"
&
%
!
"" & #
&
I'
*
""
$% $ !
/
#
& " & )7
6%
8
' %8 A
$
$
#
$
%
#
I'
9
% !
I' &
)
%
#
" $" & 3
%
" 9
$
&
" ! 9& $ &
"" *
"
!
- ! ((" $
3%'
$
)
%
% !
$ & 3
&
! B * )
) $)%3C9 % &
#
%((
'$
$
C $% ( " $ *
*
" *
! " " %
#
# & ""9
' %8 &
""
$ # *%
% *
&
"
9
"
""
#&
&
("
#&
$"%
($ 9
I'9 . .
E
&
&
# $ 9& $ $
# "" & *
%" &
$%
$
& ! 9
)
&
#
$
""
&
*% 9
!
) %
$
$% $
*
*!
)
! ! & #
3
* "#
9
#
" # $ "" *%
$
% $
! $
%
*
%" % *
#
(
*
# ($
I'
"" & $%
%
# " $ " & 3)
*% L: M
#
$ *% ) ,%
& $
%9 &
"
$% &
!
*
"" )
%" 9
R "" &
&
%
E )
&
($ ;
&
!
"
&
/ )
$ ' %8
%$$ #%""
"" 9
B !
C $
#
$ # *%
#" &
#
(
.
#
! 9
?A )?FG) )??9
("
($
(* )
* 9
($
& $$
"
%*
&
& )
'(* & $
# %"
(*
# *
$ # *%
#" * )
($
$
(* &
$
(*
%
& 39 &
$
$ # *%
# & ""
*
" ! " (( (
#
&
! 9
# %"
' %8
# & ""
%
$
& ""
%
! $
)
*
' %8
& "" 7 # *%
=
& 0' 33 59
# & ""
* &
$ # *%
" &
$%
*9
" *
&
!
& 3 !$
"" & ( $
& 3
" *
"
!$ #
$% )
#
*
$
(%
9
&
&
:
! " "
!
" $"
& 3)
3%-
/ #
($
%" )
&
. "
E
/ )
! &
$% %
""
#
#&
7 $ ( " 9 *$$)
* ($ 9 (
#
%$
#
$ (" *
(
'
%
9
S "&
! % *
(
'
"3 ) (
%
*
%
(
&
%
# $ #$
$
&
8 ("
$ #$
*
#$ % $
7 C< " %*
8 (" $ # $
$
" %
((" $
"& " 9
!
(% (
#
*
# ( ! 3 #
&
! )
' 7 #$
E
O)> A 7 $ # $ )
%
" $"
* R
" *&
! "
(
(
&
;?
(
3%.
*
)
#
(" ,
* %
" *
(
" 3
% #
"
9 ($
( !
0,
$
)
3 #
#
## $%"
&
;
"
*
$
3 9
$ (
%
#$
6%
; " ($
%
#
$ # *%
#
($
3 $
($ 9
)
S "
((
#$
%
B 3
"
% " #
$% &
( / $
( !
" %$
6%
#
'
$ (
9& $ &
3
#
$ %
9
$ #$
6% 9
# %" :F>
)
&
$ ( &
(" ;, $ (
5 %((
?FG;
$ (
&
* $(
%((
'% * 3
, ) $%
3
R
" * 9
>
$ ( ; (( 8
" :)@ T ? J
*
$ ()
"" )
/ * ?(
")L::M
%
#
$%
$ $ %
&
""
$
( &
#
( & )
$
% ( &
9
$
9$
*
B% ( # " C "
"
#
%
%
%(
*
)
# "" & * I'
1
3#
#
% <
# %"
B
* C
&
* $ (
" %
& $
% *
CREATE TABLE userprofile {
id tinyint{4) DEFAULT ‘0’ NOT NULL AUTO_INCREMENT,
useralias varchar(20),
password varchar(20),
firstname varchar(20),
lastname varchar(20),
temporaryIP varchar(15),
PRIMARY KEY (id),
UNIQUE id(id)
);
:>
(
.
$
$
.# "
3
( ! $
&
# % :; *
%
&
" *
# ?> $
9 (
$
< : ;
)
( $ $
"" & %
$
$
I'
%*
%
$$ %
#%"" (
!
9
%$ ! $
%$
"
()
%$ 9
$$ %
)
%
" 6%
(
%
# I' $
9
$$ %
B % C& $
( #
' 7 9
.,
I'
" # %
* ((" $
"#)
%
$$ % 9
$"% * (
""
%"
"
%
( #
""
& (
% ( #"
GRANT USAGE ON userprofile
TO testuser (IDENTIFIED BY ‘[password]’)
GRANT SELECT, INSERT, UPDATE ON messenger.*
TO testuser
( $
'$
("
$
&
#
*
)
%( #
I'9
( 9
&
& $
% $
3%3
&
( / $
(
%
%
*
(*
(
"
& %(
!
#%""
*
"
"
/ )
*
. .#
B %
C
& $
%
*
%
9
#
! 3
(
%*
$
(* 9
S $ )( ()
. .( * $
$
% *
$
$
! &
9%
6"S " $ S
" $
*
#
% *
6"S6%
. .( *
% (
*
B %
%
C
"
%
%$$ #%"" 9
$
$
$
*
<
$
& & "
)
# *%
#" &
""
$ *
I' ! 9
*
( 122?A )?FG) )??)
((
*
$
$
8 7 $
#
#
&
&
%((
%((
. .2
I'
")
$
($
!
%$
)
#
(
%" . .
6"S$
$
( & 9
)
$ $
$ 9
I'
9
(
#
) # % C $
$
$"
%
* ((" $
#
(
&
. .#" ) #
*
#
&
! " " #
#
%
. . %$ $
((
8 )
:F
&
$
")
9
*
# %
(* 9
($
&
!
$% &
((
& "
8 9&
3%6
/ &
""
#" #
$
-, 7
*
/ #"
%
*
!
* $
7'
# "" & * $
& "
.
#
!
7;
I' &
!
" %
""1
9
' %8)
$ setenv CLASSPATH
/path/to/mysql-connector-java-version-bin.jar:$CLASSPATH
("
I'
& %
'
$
% $ *&
%
9 % * 3
# "" & * $
1
! $
"" &
$%
"
$
# $ 0$ $ )(
-! ( *
I' ! )
%
5
$
I'
&
#$ &
' %8
%$
%
(
-!
$
&
$ keytool –import –alias mysqlServerCACert –file cacert.pem
–keystore truststore
#
*
$
#$
3
6%
(
&
&
9 3
"
$ #$
(
%
&
#
%
)
Owner: CN = Test CA (1024 bit), O = CryptSoft Pty Ltd,
ST = Queensland, C = AU
Issuer: CN = Test PCA (1024 bit), O = CryptSoft Pty Ltd,
ST = Queensland, C = AU
Serial number: 1
Valid from: Thu Dec 02 21:38:51 GMT 1999 until: Sun Jul 10 22:38:51
BST 2005
Certificate fingerprints:
MD5: EF:02:83:EA:AC:AF:6A:30:8D:4F:56:A8:2B:A1:C5:D3
SHA1: A6:CC:2A:D7:E3:8F:49:E7:8B:4F:76:E8:E0:FA:37:5E:62:2F:66:23
Trust this certificate? [no]:
$
3
!
* 9& $
)
$
$
&
("
# "" & * $
%
( #
$
#$
( $
&
%
#
* (% (
*
$
* 3
"
$
$"
% $
3
9
$ #$
*&
$ ""
3
"
$%
B3
1
$ keytool genkey keyalg rsa alias mysqlClientCertificate
keystore keystore
:@
I'
$" ) * 9
C % *
H
" (
&
$ #$ 9& $ & $
# 6%
%
("
$"
$
%
#$ *
#
#$
#
)
3%9 "/ *
$
#% $
"
$ #
#
$
(
$
$"
)
$
! &
#
E
&
$
%
%
$
*
((
%
$
# %
%
(
( & )
" ** *
&
/ #" 9
%
#
%
$
* ) ( " *
-, 7 !
!
* $
&
*
(
( *
!
%
( $
"
$
9
#
*
B%
(
)
$
=
%
"
#
#%""
%
((
$"
%$ $
#
8
" * &
(% (
#
(
6%
*
( &
$
$
$
$
!
'C
.
%
$% "
&
&
%"
9
*
#
%
$ (
( &
%
$
$
$ (%
9
(
3
*
&
&#
% ) #
$
(" &
&
#
$
$
C
#
$
$
)
$
%"
$"
#
)
%"
,
*
$ $
%
8 )
3 # %
-!
$ !
((
8 9
# %
$"
3%9%$ "/ (
(
#
%
$
%
#$ 9
#
!
#$ 9
& $
$
( !
!
!
-, 7
%( &
2 $ $ " $39 (
*
#
(
* $
$
*
$
$
"9 " *
%
$% $
$
&
$"
9
*
.$
$ ""
$
$
I' 6%
#
%
%
#
%
( &
(% ( & ) #
$ 9
%$$ #%" ;
.
#
% C
"%
% C
& %(
$
$ #
*
9
$ #
' *
8 $"
%
;
")
2$ $
$
&
* $
)
" $3
#
""
& $
)
(
$
9
)
$"
$
9
%(
)
$
& *
$ '
( *
. #
#$ $ (
%
"
!
8
( (
$
! &
&
! &
:G
*
*
$
'
B" * C %
#
$
( $
# (
* &
&
&)
%
$
#
%
6%
B" *
C
(
3%9%' "/ *
$
("
$ !
7 !
7 !
7
" **
" **
"
%
"
#
"
"
$
$ #
#$
! $"
(
"
"
$
,
0 )
(
%
"! )
"9 & $
(
%
$ !
& %
*
$
&'
)
$
( *
#$
#
%
((" $
$
*
& $
$ !
&
$"
! ;
$
( (%"
< ! " " %
# $ !
.
%
%
%"
-' $
%$
)
&
!
(
"
$
$
$ !
$ #
"#; 8("
&
%""5 ( #
*
%
)
$
7 !=
& $" 9
$(
* # 8
&
& %
# )=
$ !
3
*
* (
&
& $"
!
&
&
"#< &
$ !
* #
# %" )
$
$
"
9
$
$"
"" &
%
)
$ !
$" $3 *
=
&
*
&
$
9
$"
% $
$(
3 7 !
(
*
(
(" $
&
!
#
9
# "" & *
=
!
" **
" $
* "*
)
$"
/ $
("
*
'
#$ 9
9& $ $
! &
$
! &
&
&7"
$"
*
* &
!
$3
''
$
((" $
)
=
=
&
*
&9
:A
&'
( !
&'
$ (
/ $
#% $
" )
<&
%
(
.# "
B ##" C9 & $ (
#$ 9 &
"
# $"
!
"
$
*
9 &
*
8
3%9%- "/
&
! " "
/!) )
7 !
# "" & *
3%9%. "/
$"
"
$
!
#$ 9 #
! 1
)
*
# %
#% $
"
&
& $
$ !
(
" #
$
$
$ '
$ !
7 !=
& $"
8
*
*
%((
8 # "
*
8
* #
9
&
!
$
$
3%9%3 "/
#
*(
#
! % "
%
$ $3
*
%
("
! $"
8("
9
#
"
$
(
(
9
("
8
* )
*
$" 9 & $
* %
)=
%
&
&9
* $" $ ""
((
&
*
%((
8 # " 9 %
*
*)
7 !
"
# $ $"
! )
("
$
9
&
&
7 !
! )
%
8
("
&
&
* *
%
(
*
#$
( !
# & - 8
& $
%
#$ !
(
& $ $ ""
9
@ & )
$ !
" &
%(
$"
*
%
$ ""
%""
$ ""
! 9
$"
&
#
%
("
)
7 !
$ !
&
&
$(
*
$
"
"
* 9
#
*
#$
$$ (
*
(
)
! % "
$(
(
$ $3
* &
&)
( 9
$ !
*
&
* $" 9 & $ $
$ #
"
#$
$ ""
$ $3
*
%
*
* #
#
$ "" 9 "
*< #
%
*
%""9
3 7 !
=
&
$
$ !
&
&
$( C $
*
#
)
3%:
& #
*
2$
/
$
#
/ #"
#" $
7
* )/
&
$
$
""
2%
8
& )
*
&
$"
;
%
*
# "" & * $
$"
-, 7
1
!
"" # "
$$
" )
$ jar cvmf messenger.jar [contents]
/ #"
&
*
%
#
*
/
*
"9 & $
6%
3
$
)
$ keytool –genkey –keyalg rsa –alias signedjar –keystore
jar_keystore
$
3 ( &
/ #" #
*
#
*
&3
" $ ""
*
B/ S3
C9
* )/ )
$
" &$
$ jarsigner –keystore jar_keystore –storepass [password] –keypass
[password] –signedjar signedmessenger.jar messenger.jar signedjar
3%>
/
(
%
*
"" & $ 2-)
7
*
&A
*
) /
/ #" 9
%
3
$$ ("
* / #" 1
&
$
%
*
*
# "" & * (
( (
&
$
%(
-Djavax.net.ssl.keyStore= [path to keystore file]
-Djavax.net.ssl.keyStorePassword= [keystore password]
-Djavax.net.ssl.trustStore= [path to truststore file]
-Djavax.net.ssl.trustStorePassword= [truststore password]
?
#
# *%
%
*
*
6%
* $ ( $ $"%
&
* * #& )= $
$ !
(
! $%
#
%
6%$ "/
#
"&
)
&
# % ( (
*
%" )
$
#
$
( !
(
$ ("
$%
&
/ )
&&
(
' %8
! 9
$%
($
!$
$ cd /usr/local/apache/bin
$ apachectl startssl
(
*
$%
($
!$ 9 &
&
( 122" $ "
)
%
#
&
$%
9
*!
(
! &
$ #$
%
$ #$
%
) # $$ (
% 9 *
(*
("
$
$" 9 &
$% ( " $3
$
#
R ""
$ *
$% $
$
( " $3 $
"" &
$"
%
! &
" #
#& $
&
* ): # ((
8 )
6%' B
/
(
("
*
$
"
$ #
)? # ((
8
$
! ) 7" $3 *
$ #$ 9
$
#" B *
J! # & $
#"
* )/ C #
/ *
"
#
$% &
! #
9
9
*
%
#
& "
$"
%
$
*
#
#" )
$ jarsigner –verify signedmessenger.jar
jar verified.
6%- "
%
&
*
#
/
-
&
/
( !
-, 7
*
# "" & * & $ 1
&
(
I'
-Djavax.net.debug=all
!
& 3 *
'
%
*
$
-
$
&
%** * &
/
%** *
'
"
3
$
% !
%
! " *&
"
$
%* & $ 9
%
$
$
$
&& $ 3
8$ * )
#$
%
#
*&
$% " *
& $"
&
(
$$
& %)
& ! 9 %(
%
& % "
*
% (%
$% %(
" * ')
*%
$
<
#
*
$
/
!
&
&
#" &
'
(
(
## $%" #
# %
$%
$
)
( ! %"
9
';
" " * & %"
%"
6%
( $
*
$
#
%
Q9 %
## $%"
6% #
"" $ " )
8(
&
(
% *
( $3
*
" $( % (
& 3
## $
&
$"
! 9 % * 9
& " "
$ "
##
$
&
';
" $
$
&
%)
6%.
/
(
&
(" %
% (%
"
&
&
&
*
! ) &
(
(
"$ 1
- 1
"$ 1
*
$
!$ &
" *
" )
"" " $
&
%
* F)? * !
&
!
$ !
)
= $
#
$ !
$ $3 #
$ !
(" * B
!
-
& $"
%
$ !
&
!
%*
! 9
(
*! #
$3
(
%
$
$ 3 (
# $ !
7 !
9 "$
3 (" $
"
& "
9
&
! &
%
)
"
)
%
*
/
& 1
* ( / $N
% (% #
% (%
"$
& $
"$
- C
* F) 9 & $
$ !
*
# -
9
* #
"$
*
&
* #
&$ !
&
&9
"" " $ C)
:
$
"
( $ ! " )=
#" & #
$
*
3 * $ !
&
B C)
! $ #
9
#
% &
$
) - C % (% #
%
%
$ !
(
%
*
&
* F)?
$
"$
$
(
9
!
$ $3 * #
*
$
! 9 % !
$ !
"$ C
* F)
*
! $
#
$
"
$ #
* )
#
&
$
"
% (%
"$
-
$ !
* #
" $ C % (%
$
$ #
*
&
*
- )
" * %
#
$ $3 *
* )
% (% #
$
!
C
$
-
9
$ ( #
*
$ !
* * 9
9%
9%$ C
/
) 8
* $
#
% * $ !
9
$"
# % $%
%
#
'
%
$ (
## $ ! " ) # & 3 * $
$" 9
"
# %
Q&
'
&
$ (
"" & %
!
((" $
#%"# "
"
*
* )
& ! 9
-, 7
*
& %" 8( $
" )
%$
%$
9
(
(
* #
#&
<
$
$ " #
* & ""
((
*
% &
-! ( *
%
$3* %
#
*%"
!")
$%
# %
$ "%
%(
%(
$( C $
#
!
* " *% *
%
( *
$ %" $
$
#
%
$
= "
* * #&
%"
%
#
( !
$ %"
%$
$
( / $
$
& 3(" $ &
"
$
& &
" %*
((" $
$
&
"
(
$ 9
(
"
( !
& %"
$%
! " "
9 # 8 (" #
%
*
%
% #
$" &
I' !
$ "
* * #& $
!
).
(
(
* *
"
& $
$ " ** * )
% "
$
$ $3 #
)
"%
#
#
*9 &
( $
$3 #
&%
*
# %
$ ! 9
*
* % " )
3 # %
# C ( (%"
! " "
*!
9
##"
$
$C !
" #
%
&
&
(
)
#&
*
3 (
%
#
#
(" &
" *
% %$$ #%"9
%
#
*!
(
< & !
# & $ %"
( !
3 *
% # $ #
$
$ $ "(
9 %$
3 *
%
$ #
&
## #
*
! $$
"" (
$"
$ )
8
*
"
&
$
$
$
*
9&
) #
&
(
!
*
$%
%(
$$
#$
* *
*% "
%"
$
%
9#
#
" *
$ %" (
!
%
#
9 % # "
$
"
( $ " $$
("
$ %" $ %
"$ %
*
;$ $ "9
%
$%
& 3
&
)
>
9%'
#
$
&
% $
(
$$ (
$
* *
$%
& 3(" $ 9 %
#
$
" * )
(
$
% $
#
%
% 9
$
)
& 3 ( !
" *% *
& $
("
%
$
*
"
! "%
#
#
/
*
(
$%
#
#
# %
#
#&
& $
$%
$%
# % "
$ " *
"%
9
( %$
& 3 *
& $
$%
*
$ !
#
"
$%
#&
F
* *
/
L?M
%"" 9
)-)9
! 9
) )9 H * 9 )9
""
,)
7
H)9 B
!"
:
L M
$9 )
L:M
"9
="
$ %
)
& 39
!"
)9 B
"#
" 9 -),)9 B$
L M
E
L>M
$7%"" * 9 ,)
%9 -)9 (#
(122 & )$ )$
! " "
0"
$$
?
5
) '
!9
2 ? ;? : S:;> F>F> )
LFM
" 9 )9 B
! " "
0"
$$
%
(122 & )$ )$
?
5
!"
)L
'
M
2 ? ;? :;A>@@G@)
%$ # *
0"
$$
(* L
L@M
LGM
LAM
9 ) )
%
. " 9 ')9 B
?
(* L
?
$$
L? M
0. !
! " "
0"
$$
L??M
3
9 )9 B*
! " "
7
0"
$$
?
L? M
' C9
'
5
M ! " "
.
'
M ! " "
$
) *
!+
(*
L
'
M
) & )$
5
& " )$
$%
(122&&&)
?
M
"
(122&&&)/
* *
5( / $
(122(
)% )$$
?
5
$
! " "
0"
$$
'
5
= 9 ) )9 B
! " "
(122&&&)$ (%
0"
$$
?
5
L?:M
:L
"
(122 % $ # * )
$ ( / $
(* L
'
M
! " "
(122 % $ # * ) 2( / $ 2
0"
$$
?
5
0"
& B9
9
$)$
5
@
:L
2(
!9
L
( $ 2 $%
2 $%
'
2
M
:
'
M
2 "
L? M
. $$
9 .)9 B, % -
L?>M
%
L?FM
*
! " "
$$
0"
%
L?GM
"
(* L
'
* )
)$ 2 %
5
(122
?
. "9 )9 B // # ,
L?@M
*
% 9 -)H)9 B
0
L?AM
E # 3 "9 )
( ##
)9 C "" 9
?
9 E9 B$
L M
.
4
9 )9 B1
L ?M
" 9 ) )9 B1
L M
(9 -)9 B1
L :M
L M
L >M
3
2
3
;= " 9 ?AA
C
"" 9 ?AAA
"*
!"
.% "
C9
)9
)9
$ 9 )-)9 B
! " "
(122
0"
$$
?
;= " 9
9 '),)9 B$
" 3)
"" 9
?
M
2 'S )
"
' !" ?AA@ L
'
M
$ 2. ( 2&&&/2 $" )
"
'
)
*9 ?AAA
C
$3
9 H) ) )9 B
'*
!" ?AA> L
'
(122&&&)
$ ( )$ 2 *2 $%
! " "
0"
$$
?
5
2U#/
5
C9
. .
(
! " "
0"
$$
L @M
## $ " - !
(* L
'
! " "
(122/ ! ) % )$
0"
$$
?
5
L GM
I'
! " "
0"
$$
L: M
)9
%*
L FM
L AM
;= " 9 ?AA
!"
C9 :
2
% !"
!9 :
2
:
M
9
!"
'
* 9 ,)9 B1
%
%!9
. .
'( / $
(* L
'
(122&&&) (
") *
?
5
;= " 9 ?AAA
M
M
(* L
'
M
(122&&&)
6")$
?
5
! "" 9 )9 B
C9 F
$ # =
! %! 9
:L
! " "
(122 & ) $ # )$
0"
$$
?
5
G
9
'
;= " 9
M
?
L:?M
L: M
L::M
E
9
)9 B$
*
*% 9 7)9 B, 5 '
9 E)9
)9 C
* 9 )-)
"" 9
-6
!" = " 9
:
!" = " 9
:
H *9 )9 B
A
7'!"
#
&,#1
C
#%$ "/
C
#%' *
A
/
D/
& )
&
/
&
>
&#
/
C
#%- "/
C
#%. "/
D
/ )
/ * E
>?
)
)
C
#%3 #
/
/ /
>
/
#
&,
((
#
9
1
&
8(
$ " 9
# "
#%"" - !
. . $ (
$"
7 !
. .$
%$ $
%
%
$
%
"
! $"
& "
9& $
/
%
& ;
* ((" $
*
)
&
! < "" - ! $"
( $3 *
#"
8$"%
! )
%
*
%$ "/
<html>
<head><title>Secure messenger registration</title></head>
<body>
<p align=left>
Welcome to Messenger.<br>
To download this program, please fill in your details below.<br>
</p>
<input type="hidden" name="useralias" value="
<? print $_POST['useralias']?>">
<input type="hidden" name="password" value="
<?print $_POST['password']?>">
<input type="hidden" name="firstname" value="
<?print $_POST['firstname']?>">
<input type="hidden" name="lastname" value="
<?print $_POST['lastname']?>">
<form method="POST" action="insert_record.php">
<table
width="300"
bgcolor="orange">
cellpadding="5"
cellspacing="0"
<tr align="center" valign="top">
<td>Enter username:</td>
<td><input type=text name=useralias size=20><br></td>
</tr>
<tr align="center" valign="top">
<td>Enter password:</td>
<td><input type=text name=password size=20><br></td>
</tr>
<tr align="center" valign="top">
<td>Enter first name:</td>
<td><input type=text name=firstname size=20><br></td>
</tr>
<tr align="center" valign="top">
<td>Enter last name:</td>
>:
border="2"
<td><input type=text name=lastname size=20><br></td>
</tr>
<br>
<tr>
<td>
<input type=submit value=Submit><input type=reset>
</td></tr></table>
</form>
<br>
<p>
Upon entering your details, press the 'Submit' button.<br>
To protect your privacy, your details will be sent to the database
via a secure connection.
</p>
<hr>
<p>
<i>
Created by Joe Barber as part of a final year project at the
University of Bath. <br>
This website is hosted on a Linux server, and has been created
using PHP, mySQL, Apache and the OpenSSL toolkit.<br>
The messenger is programmed in Java.
</i>
</p>
</body>
</html>
%' "/
<html>
<head><title>Messenger Download</title></head>
<body>
<?
$useralias=$_POST['useralias'];
$password=$_POST['password'];
$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$host = "localhost";
$db = "messenger";
$user = "root";
$pwd = "J88LLmkk9";
//
//
//
//
Name
Name
User
User
of host computer
of the database
name
password
>
// Create connection to MySQL server
$link = mysql_connect($host, $user, $pwd);
mysql_select_db($db, $link) or die( "Unable to select database");
$result=mysql_query("INSERT INTO userprofile (useralias,
password,firstname,lastname,temporaryIP) VALUES
('$useralias','$password','$firstname','$lastname',NULL)")
or die("Your details have NOT been registered due to an error"
.mysql_error());
mysql_close($link);
?>
<p>
Your details have been added to our database.<br>
To begin using the messenger, please
<a href="signedmessenger.jar">download the jar file</a>,
</p>
</body>
</html>
%- (
,
/*
----------------------------------------------------------------LoginBox:
The GUI implementation of the username/ password screen.
The main class in the jar package.
Written by Joe Barber, 2004.
----------------------------------------------------------------*/
import
import
import
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
java.sql.*;
java.net.*;
javax.net.*;
javax.net.ssl.*;
public class LoginBox extends JPanel implements ActionListener {
private
private
private
private
private
private
private
static JFrame mainFrame;
JLabel label;
JLabel jl1;
JTextField pw1;
JLabel jl2;
JPasswordField pw2;
JButton jb;
public LoginBox () {
Font f14 = new Font ("SansSerif", Font.PLAIN, 14);
Dimension dim = new Dimension (250,25);
>>
JPanel zero = new JPanel ();
label = new JLabel ("Please enter your username
and password:");
zero.add (label);
JPanel onetwo = new JPanel ();
BoxLayout box12layout = new BoxLayout (onetwo, BoxLayout.X_AXIS);
onetwo.setLayout (box12layout);
pw1 = new JTextField ();
pw1.setText ("<Enter username here>");
pw1.setPreferredSize (dim);
jl1 = new JLabel ("User name");
onetwo.add (jl1);
onetwo.add (Box.createHorizontalStrut(10));
onetwo.add (pw1);
JPanel threefour = new JPanel ();
BoxLayout box34layout = new BoxLayout (threefour,
BoxLayout.X_AXIS);
threefour.setLayout (box34layout);
pw2 = new JPasswordField ();
pw2.setPreferredSize (dim);
pw2.setEchoChar ('*');
jl2 = new JLabel ("Password");
threefour.add (jl2);
threefour.add (Box.createHorizontalStrut(14));
threefour.add (pw2);
JPanel five = new JPanel ();
BoxLayout box5layout = new BoxLayout (five,
BoxLayout.X_AXIS);
five.setLayout (box5layout);
jb = new JButton ("Log in");
five.add (jb);
jb.addActionListener (this);
// Create a panel to hold the three nested panels
JPanel intermediatePanel = new JPanel ();
BoxLayout intermediateLayout = new BoxLayout
(intermediatePanel, BoxLayout.Y_AXIS);
intermediatePanel.setLayout (intermediateLayout);
// Add the nested panels to the intermediate panel
intermediatePanel.add (zero);
intermediatePanel.add (onetwo);
intermediatePanel.add (threefour);
intermediatePanel.add (five);
JPanel mainPanel = new JPanel ();
mainPanel.add (intermediatePanel);
add (mainPanel);
}
>F
// Authenticate the user details against those in the database
public void actionPerformed (ActionEvent e) {
if (e.getSource () == jb) {
Connection db = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// Set 'useSSL=true' to the String for DriverManager
String url ="jdbc:mysql://192.168.0.11/messenger?useSSL=true";
db = DriverManager.getConnection(url,"testuser","");
// Compare input in password field with that in db
String user_name = pw1.getText();
String command = "SELECT * FROM userprofile
WHERE useralias = '"+user_name+"'";
Statement stmt = db.createStatement();
ResultSet rs = stmt.executeQuery(command);
String db_pw = null;
// If there is a match, ie. select returns a row
try {
rs.next();
db_pw = rs.getString("password");
}
catch (SQLException q) {
System.out.println(q);
}
char [] input_pw = pw2.getPassword();
// Convert char array to string
String ipw = new String (input_pw);
if ((ipw).equals(db_pw)) {
try {
InetAddress addr = InetAddress.getLocalHost();
// Get IP Address
String ipAddr = addr.getHostAddress();
System.out.println (ipAddr);
// Get hostname
String hostname = addr.getHostName();
System.out.println (hostname);
// Compare user input name with that in db
String command_update = "UPDATE userprofile
SET temporaryIP = '"+ipAddr+"'
WHERE useralias = '"+pw1.getText()+"'";
Statement stmt1 = db.createStatement();
stmt1.executeUpdate(command_update);
// Upon successful login, create the messenger
makeMessenger (user_name);
// Close the LoginBox upon login success
mainFrame.dispose();
}
>@
catch (UnknownHostException u) {
System.out.println(u);
}
}
else {
// If login unsuccessful, create an error message
makeLoginErrorBox ();
System.out.println ("Wrong password");
}
}
// Catch any exceptions that are thrown.
catch (ClassNotFoundException c) {
System.out.println(c.toString());
c.getMessage();
}
catch(SQLException s) {
System.out.println(s.toString());
}
catch(Exception x) {
System.err.println(x.toString());
}
finally {
try {
db.close();
}
catch (Exception ex) {}
}
}
public static void makeMessenger (String user_name) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame
f
=
new
JFrame
("Messenger:
contacts
"+user_name);
Messenger ms = new Messenger (user_name, f);
f.getContentPane ().add (ms);
f.pack ();
f.setVisible (true);
}
public static void makeLoginErrorBox () {
LoginErrorBox eb = new LoginErrorBox ();
JPanel jp1 = new JPanel ();
jp1.add (eb);
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame ("Login error");
f.getContentPane ().add (jp1);
f.pack ();
f.setVisible (true);
>G
for
}
// The class requires a main method to instantiate itself
public static void main (String [] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
mainFrame = new JFrame ("Messenger log in");
LoginBox lb = new LoginBox ();
mainFrame.getContentPane().add (lb);
mainFrame.pack ();
mainFrame.setVisible (true);
}
}
%. (
+
,
/*
----------------------------------------------------------------LoginErrorBox:
A simple GUI implementation an error message, called by the
LoginBox class upon unsuccessful login by a user.
Written by Joe Barber, 2004.
----------------------------------------------------------------*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginErrorBox extends JPanel {
public LoginErrorBox () {
JPanel jp = new JPanel ();
JLabel jl = new JLabel ("Please re-enter your correct
username and password");
jp.add (jl);
add (jp);
}
}
>A
%3 *
/*
---------------------------------------------------------------Messenger:
The GUI implementation of the Messenger class. Displays all online
contacts for a logged-in user and communicates with the server
class to pass conversation between the server and itself.
Written by Joe Barber, 2004.
----------------------------------------------------------------*/
import
import
import
import
import
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
javax.swing.event.*;
java.sql.*;
java.rmi.*;
javax.net.*;
javax.net.ssl.*;
clientMessenger.*;
public class Messenger extends JPanel implements WindowListener,
ActionListener {
private
private
private
private
private
private
private
private
private
private
private
private
private
JList list;
DefaultListModel listModel;
JPanel topPanel;
JButton talkButton;
JButton checkButton;
JButton send;
ConvWindow cw;
JTextArea mainfield;
String user_name;
String recipient_name;
String temp_name;
String msg_str;
String temprname;
public Messenger (String user_name, JFrame parent) {
super(new BorderLayout());
topPanel = new JPanel ();
parent.addWindowListener(this);
listModel = new DefaultListModel();
addContactsFromDB(listModel, user_name);
F
//Create the list and put it in a scroll pane
list = new JList(listModel);
list.setFixedCellWidth(200);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.setVisibleRowCount(5);
JScrollPane listScrollPane = new JScrollPane(list);
talkButton = new JButton("Start conversation");
talkButton.addActionListener(this);
talkButton.setEnabled(true);
checkButton = new JButton("Check messages");
checkButton.addActionListener(this);
checkButton.setEnabled(true);
//Create a panel that uses BoxLayout
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane,
BoxLayout.LINE_AXIS));
buttonPane.add(talkButton);
buttonPane.add(checkButton);
buttonPane.setBorder(BorderFactory.
createEmptyBorder(5,5,5,5));
topPanel.add(listScrollPane, BorderLayout.CENTER);
topPanel.add(buttonPane, BorderLayout.PAGE_END);
add(topPanel);
temp_name = user_name;
}
public void actionPerformed (ActionEvent e) {
if (e.getSource () == talkButton) {
Object obj_name = list.getSelectedValue();
recipient_name = ""+obj_name+"";
user_name = temp_name;
//converse with currently selected user
makeConversationWindow(recipient_name,user_name,msg_str);
}
else if (e.getSource () == checkButton) {
user_name = temp_name;
receiveMessage(user_name);
}
else if (e.getSource () == send) {
recipient_name = get_recipient();
String s = cw.sendmsg(recipient_name);
// We want to set the text string to this new value
System.out.println("Current text now being set to:
\n"+ s);
try {
F?
String url = "//192.168.0.11/ConversationHandlerInterface";
ConversationHandlerInterface ch =(ConversationHandlerInterface)
Naming.lookup (url);
ch.conversationHandler(s, recipient_name, user_name);
}
catch (RemoteException r) { System.err.println (r); }
catch (Exception ex) { System.err.println (ex); }
}
}
public void addContactsFromDB(DefaultListModel listModel,
String user_name) {
System.out.println("logs in as "+user_name);
Connection db = null;
try {
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
String url = "jdbc:mysql://192.168.0.11:3306/messenger";
db = DriverManager.getConnection(url,"testuser","");
// Show users who are online AND are not the logged-in user
String command = "SELECT * FROM userprofile
WHERE temporaryIP != 'NULL' AND
useralias != '"+user_name+"'";
Statement stmt = db.createStatement();
ResultSet rs = stmt.executeQuery(command);
//display results
while (rs.next()) {
String contact = rs.getString("useralias");
listModel.addElement (contact);
}
}
// Catch any exceptions that are thrown.
catch (ClassNotFoundException c) {
System.out.println(c.toString());
}
catch(Exception x) {
System.err.println(x.toString());
}
finally {
// Always close the the db connection
try {
db.close();
}
catch (Exception ex) {}
}
}
F
public void logOffFromDB(String user_name) {
System.out.println(user_name+" is logging off.");
Connection db = null;
try {
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
String url = "jdbc:mysql://192.168.0.11/messenger";
db = DriverManager.getConnection(url,"testuser","");
// Create SQL update to set logged-off user's IP address to NULL
String command = "UPDATE userprofile SET temporaryIP = 'NULL'
WHERE useralias = '"+user_name+"'";
Statement stmt = db.createStatement();
stmt.executeUpdate(command);
}
// Catch any exceptions that are thrown.
catch (ClassNotFoundException c) {
System.out.println(c.toString());
}
catch(Exception x) {
System.err.println(x.toString());
}
finally {
// Always close the the db connection
try {
db.close();
}
catch (Exception ex) {}
}
}
// Pick up conversation window if it is meant for user
public void receiveMessage (String user_name) {
//Notify that user has received a message
System.out.println ("recieveconv");
try {
// The IP address of the Linux server is 192.168.0.11
String url = "//192.168.0.11/ConversationHandlerInterface";
ConversationHandlerInterface chi =
(ConversationHandlerInterface) Naming.lookup (url);
// Picks up the message string from server
String str = chi.checkForMessages(user_name);
String recipient_name = chi.getMessageSender();
if (str.equals("null")) {
System.out.println ("No messages");
}
else {
makeConversationWindow (recipient_name,
F:
user_name, str);
}
}
catch (RemoteException r) { System.err.println (r); }
catch (Exception e) { System.err.println (e); }
}
public void makeConversationWindow
String user_name, String msg_str) {
(String
recipient_name,
System.out.println(user_name+" makes convwindow!");
System.out.println("convwindow intended for
"+recipient_name);
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame ("Conversation with "+recipient_name);
cw = new ConvWindow (recipient_name, user_name, msq_str, f);
f.getContentPane ().add (cw);
f.pack ();
f.setVisible (true);
mainfield = cw.getTextArea();
send = cw.getButton();
set_recipient(recipient_name);
send.addActionListener(this);
}
public void set_recipient(String rname) {
temprname = rname;
}
public String get_recipient () {
return temprname;
}
// Methods required for WindowListener
public void windowOpened (WindowEvent e) {
}
public void windowIconified (WindowEvent i) {
}
public void windowDeiconified (WindowEvent d) {
}
public void windowActivated (WindowEvent a) {
}
public void windowDeactivated (WindowEvent a) {
}
public void windowClosing (WindowEvent c) {
user_name = temp_name;
System.out.println("Window closes as "+user_name);
logOffFromDB(user_name);
System.exit(0);
}
F
public void windowClosed (WindowEvent w) {
}
}
%6
@ & )
/*
----------------------------------------------------------------ConvWindow:
The GUI implementation of a conversation window, in which users
pass the details of a conversation.
Written by Joe Barber, 2004.
----------------------------------------------------------------*/
package clientMessenger;
import
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
java.io.*;
java.rmi.*;
public class ConvWindow extends JPanel {
private
private
private
private
private
private
private
private
private
private
private
private
private
JTextArea mainfield;
JTextArea userfield;
JPanel highPanel;
JPanel lowPanel;
JPanel mainPanel;
JScrollPane sp_main;
JScrollPane sp_user;
JButton send;
String recipient_name;
String user_name;
String str = new String ("start");
String new_recipient_name;
String new_user_name;
public ConvWindow (String recipient_name, String user_name,
String str, JFrame parent) {
mainPanel = new JPanel();
lowPanel = new JPanel();
highPanel = new JPanel();
mainPanel.setFont(new Font("SansSerif", Font.PLAIN, 18));
BoxLayout yl = new BoxLayout (mainPanel, BoxLayout.Y_AXIS);
mainPanel.setLayout(yl);
BoxLayout xl = new BoxLayout (lowPanel, BoxLayout.X_AXIS);
lowPanel.setLayout(xl);
mainfield = new JTextArea(10,30);
F>
mainfield.setText(str);
mainfield.setLineWrap(true);
mainfield.setEditable(false);
sp_main = new JScrollPane (mainfield);
highPanel.add(sp_main);
userfield = new JTextArea(3,25);
userfield.setLineWrap(true);
sp_user = new JScrollPane (userfield);
lowPanel.add(sp_user);
lowPanel.add(sp_user);
send = new JButton("Send");
lowPanel.add(send);
mainPanel.add (highPanel);
mainPanel.add (lowPanel);
add(mainPanel);
new_user_name = user_name;
new_recipient_name = recipient_name;
}
public JButton getButton () {
return send;
}
public JTextArea getTextArea () {
return mainfield;
}
public String sendmsg(String recipient_name) {
// Get the user message just sent
String s = userfield.getText();
try {
// Append it to existing conversation
mainfield.append("\n"+new_user_name+" says:\n"+s);
userfield.setText("");
return mainfield.getText();
}
catch (Exception e) {
System.err.println(e);
return null;
}
}
public String get_recipient_name () {
return new_recipient_name;
}
FF
public String get_user_name () {
return new_user_name;
}
public void setUserName (String nr_name) {
user_name = nr_name;
}
public void setRecipientName (String nu_name) {
recipient_name = nu_name;
}
}
%9
&
/*
----------------------------------------------------------------ConversationHandlerInterface:
An interface class that extends the java.rmi.Remote interface.
Written by Joe Barber, 2004.
----------------------------------------------------------------*/
package clientMessenger;
import java.rmi.*;
public interface ConversationHandlerInterface extends Remote {
// Define exported methods that the remote object implements
public void conversationHandler (String s, String recipient_name,
String user_name) throws RemoteException;
public String checkForMessages (String user_name) throws RemoteException;
public void setMessageSender(String sender) throws RemoteException;
public String getMessageSender () throws RemoteException;
}
F@
%:
&
/*
------------------------------------------------------------------ConversationHandlerServer:
The server class which instantiates the remote object and
implements the remote methods defined by
ConversationHandlerInterface.
Written by Joe Barber, 2004.
------------------------------------------------------------------*/
import
import
import
import
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
javax.swing.event.*;
javax.net.*;
java.rmi.*;
java.rmi.server.*;
java.util.*;
import clientMessenger.*;
public class ConversationHandlerServer extends UnicastRemoteObject
implements ConversationHandlerInterface {
String
String
String
String
the_recipient;
the_user;
string_new;
set_sender;
public ConversationHandlerServer () throws RemoteException {
super();
}
public
void
conversationHandler
(String
s,
recipient_name, String user_name) throws RemoteException {
String
System.out.println("The
conversation
started
"+user_name+" for "+recipient_name+" has passed through
server!");
by
the
the_recipient = recipient_name;
the_user = user_name;
string_new = s;
}
public String checkForMessages (String caller_name) {
//Display that a user has pressed to check messages
System.out.println(caller_name+" is checking
for messages...");
// If there is a message for the user, return the string
System.out.println("message for recipient: "+the_recipient);
FG
if (caller_name.equals(the_recipient)) {
setMessageSender(the_user);
}
else {
String fail = "null";
return fail;
}
}
public void setMessageSender(String sender) {
set_sender = sender;
}
public String getMessageSender () {
return set_sender;
}
public static void main (String [] args) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
String name =
"//192.168.0.11/
ConversationHandlerInterface";
Naming.rebind (name,chs);
System.out.println("Server is running and ready to
accept conversations.");
}
catch (Exception e) {
System.err.println ("Server Exception: " +
e.getMessage());
}
}
}
FA
#
&,
((
8 %"
(% 9 " * &
$
)
( *
15
%$ *
$ 6%
%$
;
" 9
%
%
!
"
* 9
" #
&
,! " (
0- 5 !
& "
*
9
"
$ *&
#
&
"&
$
)
& &
$ ("
H )7
6% " 9
#&
?)
*
% $
#
## $ " - ! &
)
%'
%
*
&
"
%
%
&
#&
%
& "
=
*
& ""
*
#
% *
6%
$" )
$
$
%* %
)
%
!
#
!
-!
"
#
& ""
?)
#
%
-!
!
!
#
-
$
=
?)
%
*
( 122?A )?FG) )??9 $
# " * )
%
"
)
8 (* 9
%
((" $
:)
(
$
%
*
/
%
& "" ((
$
$
) #
")
9
)
*
$ !
*
B
*
(
>)
$ !
(
F)
$
(
@) =
*
$ !
*
**
*
%
(" $"
$
#" 9
( &
%
"" # "
$
!
9
$ $3
&
9 $%
( &
9 (
*
("
"
$
B %
C
)
" 3
" *
9
$
#
8 & "" ((
& "
((
$
%
$
*
9
%
)
@
%
$" 9
*
%
*
$" $3 *
$
%
"
)
%
( 3
&
$ $3 #
)
* $
$ !
" * % #
* &
&
/ #" 9 ! *
"" &
& "
#$
$
* "* *
%
C %
$ !
%
&
*
$
$" $3
(% )
$
$
"
* &
$
*#
( *
&
*
&)
9
$"
$
$
(
#
&,
F
<
!
#&
%
7
&
* * $"
(
%
%"
"
9
6% " 9
! #%""
( !
& $
((
8 8
" #
(
"
((
! $"
B6% $3
) $
% / $9(
*!
#
$%
8
!
$ $"(
%
$
% $
&
"" &
%
*
& $ $
% $
&
"
$ $ !
)
(
#
$
"
$"
C *% #
$ "
("
" #
% "
)
%$
?)
(
)
"&
$%
&
($
' %8
&
!
$ usr/local/apache/bin/apachectl startssl
:)
I'
!
$ etc/init.d/mysql start
)
*
!$
$ rmiregistry &
>)
%
7 !
"
! &
'
$ java
-Djavax.net.ssl.keyStore=/keystore
-Djavax.net.ssl.keyStorePassword=
-Djavax.net.ssl.trustStore=/truststore
-Djavax.net.ssl.trustStorePassword=
-Djava.rmi.server.hostname=192.168.0.11
ConversationHandlerServer
@?
"
(
* *
$
)
& "
"
*
& %"
* #
<