[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r11289: merge from branch.
From: |
rob |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r11289: merge from branch. |
Date: |
Mon, 20 Jul 2009 15:28:19 -0600 |
User-agent: |
Bazaar (1.13.1) |
------------------------------------------------------------
revno: 11289
committer: address@hidden
branch nick: trunk
timestamp: Mon 2009-07-20 15:28:19 -0600
message:
merge from branch.
added:
libnet/sshserver.cpp
libnet/sshserver.h
libnet/sslserver.cpp
libnet/sslserver.h
testsuite/network.all/clientcert.pem
testsuite/network.all/clientkey.pem
testsuite/network.all/clientreq.pem
testsuite/network.all/dh1024.pem
testsuite/network.all/dh512.pem
testsuite/network.all/rootcert.pem
testsuite/network.all/rootkey.pem
testsuite/network.all/rootreq.pem
testsuite/network.all/server.pem
testsuite/network.all/serverCA.pem
testsuite/network.all/serverCAcert.pem
testsuite/network.all/serverCAkey.pem
testsuite/network.all/serverCAreq.pem
testsuite/network.all/servercert.pem
testsuite/network.all/serverkey.pem
testsuite/network.all/serverreq.pem
modified:
doc/Makefile.am
libnet/Makefile.am
libnet/network.cpp
libnet/sshclient.cpp
libnet/sshclient.h
libnet/sslclient.cpp
libnet/sslclient.h
testsuite/network.all/client.pem
testsuite/network.all/root.pem
testsuite/network.all/test_ssh.cpp
testsuite/network.all/test_ssl.cpp
------------------------------------------------------------
revno: 11256.1.1
committer: address@hidden
branch nick: ssh
timestamp: Wed 2009-07-15 10:07:41 -0600
message:
stubs for server side support of SSH and SSL connections.
added:
libnet/sshserver.cpp
libnet/sshserver.h
libnet/sslserver.cpp
libnet/sslserver.h
------------------------------------------------------------
revno: 11256.1.2
committer: address@hidden
branch nick: ssh
timestamp: Wed 2009-07-15 10:08:40 -0600
message:
add SSH and SSL server support files.
modified:
libnet/Makefile.am
------------------------------------------------------------
revno: 11256.1.3
committer: address@hidden
branch nick: ssh
timestamp: Wed 2009-07-15 10:09:03 -0600
message:
add support for kdbint().
modified:
libnet/sshclient.cpp
libnet/sshclient.h
------------------------------------------------------------
revno: 11256.1.4
committer: address@hidden
branch nick: ssh
timestamp: Wed 2009-07-15 15:43:44 -0600
message:
Add initial support to test the server functions too.
Add channel test cases.
modified:
testsuite/network.all/test_ssh.cpp
------------------------------------------------------------
revno: 11256.1.5
committer: address@hidden
branch nick: ssh
timestamp: Wed 2009-07-15 15:44:51 -0600
message:
Add support for using SSH channels.
modified:
libnet/sshclient.cpp
libnet/sshclient.h
libnet/sshserver.h
------------------------------------------------------------
revno: 11256.1.6
committer: address@hidden
branch nick: ssh
timestamp: Fri 2009-07-17 13:35:07 -0600
message:
start adding server side support.
modified:
libnet/sshclient.cpp
libnet/sshserver.cpp
libnet/sshserver.h
------------------------------------------------------------
revno: 11256.1.7
committer: address@hidden
branch nick: ssh
timestamp: Fri 2009-07-17 13:35:43 -0600
message:
merge from trunk.
removed:
libcore/asobj/flash/display/displayclasses.h
libcore/asobj/flash/external/externalclasses.h
libcore/asobj/flash/filters/filtersclasses.h
libcore/asobj/flash/flashclasses.h
libcore/asobj/flash/geom/geomclasses.h
libcore/asobj/flash/net/netclasses.h
libcore/asobj/flash/text/textclasses.h
added:
libmedia/VideoInput.cpp
testsuite/libmedia.all/
testsuite/libmedia.all/Makefile.am
testsuite/libmedia.all/test_videoinput.cpp
testsuite/misc-ming.all/EmbeddedFontTest.c
renamed:
libcore/as_prop_flags.h => libcore/PropFlags.h
testsuite/libcore.all/as_prop_flagsTest.cpp =>
testsuite/libcore.all/PropFlagsTest.cpp
modified:
backend/Renderer_cairo.cpp
backend/Renderer_cairo.h
configure.ac
extensions/gtk2/gtkext.cpp
extensions/mysql/mysql_db.cpp
gui/gtk_glue.h
gui/gtk_glue_cairo.h
libbase/rc.cpp
libbase/rc.h
libbase/sharedlib.h
libcore/Button.cpp
libcore/Button.h
libcore/ClassHierarchy.cpp
libcore/ClassHierarchy.h
libcore/Makefile.am
libcore/MovieClip.cpp
libcore/Property.h
libcore/PropertyList.cpp
libcore/PropertyList.h
libcore/TextField.cpp
libcore/TextField.h
libcore/Video.cpp
libcore/Video.h
libcore/abc_function.cpp
libcore/asClass.cpp
libcore/asMethod.cpp
libcore/as_environment.cpp
libcore/as_environment.h
libcore/as_function.cpp
libcore/as_function.h
libcore/as_object.cpp
libcore/as_object.h
libcore/as_value.cpp
libcore/as_value.h
libcore/asobj/Array_as.cpp
libcore/asobj/Array_as.h
libcore/asobj/AsBroadcaster.cpp
libcore/asobj/AsBroadcaster.h
libcore/asobj/Boolean_as.cpp
libcore/asobj/Boolean_as.h
libcore/asobj/Color_as.cpp
libcore/asobj/Color_as.h
libcore/asobj/CustomActions.cpp
libcore/asobj/CustomActions.h
libcore/asobj/Date_as.cpp
libcore/asobj/Date_as.h
libcore/asobj/Error_as.cpp
libcore/asobj/Error_as.h
libcore/asobj/Global_as.h
libcore/asobj/Globals.cpp
libcore/asobj/Globals.h
libcore/asobj/LoadVars_as.cpp
libcore/asobj/LoadVars_as.h
libcore/asobj/LoadableObject.cpp
libcore/asobj/Math_as.cpp
libcore/asobj/Math_as.h
libcore/asobj/MovieClipLoader.cpp
libcore/asobj/MovieClipLoader.h
libcore/asobj/Namespace_as.cpp
libcore/asobj/Namespace_as.h
libcore/asobj/NetConnection_as.cpp
libcore/asobj/NetConnection_as.h
libcore/asobj/NetStream_as.cpp
libcore/asobj/NetStream_as.h
libcore/asobj/Number_as.cpp
libcore/asobj/Number_as.h
libcore/asobj/Object.cpp
libcore/asobj/Object.h
libcore/asobj/QName_as.cpp
libcore/asobj/QName_as.h
libcore/asobj/Selection_as.cpp
libcore/asobj/Selection_as.h
libcore/asobj/String_as.cpp
libcore/asobj/String_as.h
libcore/asobj/TextFormat_as.cpp
libcore/asobj/TextFormat_as.h
libcore/asobj/flash.am
libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp
libcore/asobj/flash/accessibility/AccessibilityProperties_as.h
libcore/asobj/flash/accessibility/Accessibility_as.cpp
libcore/asobj/flash/accessibility/Accessibility_as.h
libcore/asobj/flash/desktop/ClipboardFormats_as.cpp
libcore/asobj/flash/desktop/ClipboardFormats_as.h
libcore/asobj/flash/desktop/ClipboardTransferMode_as.cpp
libcore/asobj/flash/desktop/ClipboardTransferMode_as.h
libcore/asobj/flash/desktop/Clipboard_as.cpp
libcore/asobj/flash/desktop/Clipboard_as.h
libcore/asobj/flash/display/AVM1Movie_as.cpp
libcore/asobj/flash/display/AVM1Movie_as.h
libcore/asobj/flash/display/ActionScriptVersion_as.cpp
libcore/asobj/flash/display/ActionScriptVersion_as.h
libcore/asobj/flash/display/BitmapDataChannel_as.cpp
libcore/asobj/flash/display/BitmapDataChannel_as.h
libcore/asobj/flash/display/BitmapData_as.cpp
libcore/asobj/flash/display/BitmapData_as.h
libcore/asobj/flash/display/Bitmap_as.cpp
libcore/asobj/flash/display/Bitmap_as.h
libcore/asobj/flash/display/BlendMode_as.cpp
libcore/asobj/flash/display/BlendMode_as.h
libcore/asobj/flash/display/CapsStyle_as.cpp
libcore/asobj/flash/display/CapsStyle_as.h
libcore/asobj/flash/display/DisplayObjectContainer_as.cpp
libcore/asobj/flash/display/DisplayObjectContainer_as.h
libcore/asobj/flash/display/DisplayObject_as.cpp
libcore/asobj/flash/display/DisplayObject_as.h
libcore/asobj/flash/display/FrameLabel_as.cpp
libcore/asobj/flash/display/FrameLabel_as.h
libcore/asobj/flash/display/GradientType_as.cpp
libcore/asobj/flash/display/GradientType_as.h
libcore/asobj/flash/display/Graphics_as.cpp
libcore/asobj/flash/display/Graphics_as.h
libcore/asobj/flash/display/IBitmapDrawable_as.cpp
libcore/asobj/flash/display/IBitmapDrawable_as.h
libcore/asobj/flash/display/InteractiveObject_as.cpp
libcore/asobj/flash/display/InteractiveObject_as.h
libcore/asobj/flash/display/InterpolationMethod_as.cpp
libcore/asobj/flash/display/InterpolationMethod_as.h
libcore/asobj/flash/display/JointStyle_as.cpp
libcore/asobj/flash/display/JointStyle_as.h
libcore/asobj/flash/display/LineScaleMode_as.cpp
libcore/asobj/flash/display/LineScaleMode_as.h
libcore/asobj/flash/display/LoaderInfo_as.cpp
libcore/asobj/flash/display/LoaderInfo_as.h
libcore/asobj/flash/display/Loader_as.cpp
libcore/asobj/flash/display/Loader_as.h
libcore/asobj/flash/display/MorphShape_as.cpp
libcore/asobj/flash/display/MorphShape_as.h
libcore/asobj/flash/display/MovieClip_as.cpp
libcore/asobj/flash/display/MovieClip_as.h
libcore/asobj/flash/display/PixelSnapping_as.cpp
libcore/asobj/flash/display/PixelSnapping_as.h
libcore/asobj/flash/display/SWFVersion_as.cpp
libcore/asobj/flash/display/SWFVersion_as.h
libcore/asobj/flash/display/Scene_as.cpp
libcore/asobj/flash/display/Scene_as.h
libcore/asobj/flash/display/Shape_as.cpp
libcore/asobj/flash/display/Shape_as.h
libcore/asobj/flash/display/SimpleButton_as.cpp
libcore/asobj/flash/display/SimpleButton_as.h
libcore/asobj/flash/display/SpreadMethod_as.cpp
libcore/asobj/flash/display/SpreadMethod_as.h
libcore/asobj/flash/display/Sprite_as.cpp
libcore/asobj/flash/display/Sprite_as.h
libcore/asobj/flash/display/StageAlign_as.cpp
libcore/asobj/flash/display/StageAlign_as.h
libcore/asobj/flash/display/StageDisplayState_as.cpp
libcore/asobj/flash/display/StageDisplayState_as.h
libcore/asobj/flash/display/StageQuality_as.cpp
libcore/asobj/flash/display/StageQuality_as.h
libcore/asobj/flash/display/StageScaleMode_as.cpp
libcore/asobj/flash/display/StageScaleMode_as.h
libcore/asobj/flash/display/Stage_as.cpp
libcore/asobj/flash/display/Stage_as.h
libcore/asobj/flash/display/display.am
libcore/asobj/flash/display/display_pkg.cpp
libcore/asobj/flash/display/display_pkg.h
libcore/asobj/flash/errors/EOFError_as.cpp
libcore/asobj/flash/errors/EOFError_as.h
libcore/asobj/flash/errors/IOError_as.cpp
libcore/asobj/flash/errors/IOError_as.h
libcore/asobj/flash/errors/IllegalOperationError_as.cpp
libcore/asobj/flash/errors/IllegalOperationError_as.h
libcore/asobj/flash/errors/InvalidSWFError_as.cpp
libcore/asobj/flash/errors/InvalidSWFError_as.h
libcore/asobj/flash/errors/MemoryError_as.cpp
libcore/asobj/flash/errors/MemoryError_as.h
libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp
libcore/asobj/flash/errors/ScriptTimeoutError_as.h
libcore/asobj/flash/errors/StackOverflowError_as.cpp
libcore/asobj/flash/errors/StackOverflowError_as.h
libcore/asobj/flash/events/ActivityEvent_as.cpp
libcore/asobj/flash/events/ActivityEvent_as.h
libcore/asobj/flash/events/AsyncErrorEvent_as.cpp
libcore/asobj/flash/events/AsyncErrorEvent_as.h
libcore/asobj/flash/events/ContextMenuEvent_as.cpp
libcore/asobj/flash/events/ContextMenuEvent_as.h
libcore/asobj/flash/events/DataEvent_as.cpp
libcore/asobj/flash/events/DataEvent_as.h
libcore/asobj/flash/events/ErrorEvent_as.cpp
libcore/asobj/flash/events/ErrorEvent_as.h
libcore/asobj/flash/events/EventDispatcher_as.cpp
libcore/asobj/flash/events/EventDispatcher_as.h
libcore/asobj/flash/events/EventPhase_as.cpp
libcore/asobj/flash/events/EventPhase_as.h
libcore/asobj/flash/events/Event_as.cpp
libcore/asobj/flash/events/Event_as.h
libcore/asobj/flash/events/FocusEvent_as.cpp
libcore/asobj/flash/events/FocusEvent_as.h
libcore/asobj/flash/events/FullScreenEvent_as.cpp
libcore/asobj/flash/events/FullScreenEvent_as.h
libcore/asobj/flash/events/HTTPStatusEvent_as.cpp
libcore/asobj/flash/events/HTTPStatusEvent_as.h
libcore/asobj/flash/events/IEventDispatcher_as.cpp
libcore/asobj/flash/events/IEventDispatcher_as.h
libcore/asobj/flash/events/IMEEvent_as.cpp
libcore/asobj/flash/events/IMEEvent_as.h
libcore/asobj/flash/events/IOErrorEvent_as.cpp
libcore/asobj/flash/events/IOErrorEvent_as.h
libcore/asobj/flash/events/KeyboardEvent_as.cpp
libcore/asobj/flash/events/KeyboardEvent_as.h
libcore/asobj/flash/events/MouseEvent_as.cpp
libcore/asobj/flash/events/MouseEvent_as.h
libcore/asobj/flash/events/NetStatusEvent_as.cpp
libcore/asobj/flash/events/NetStatusEvent_as.h
libcore/asobj/flash/events/ProgressEvent_as.cpp
libcore/asobj/flash/events/ProgressEvent_as.h
libcore/asobj/flash/events/SecurityErrorEvent_as.cpp
libcore/asobj/flash/events/SecurityErrorEvent_as.h
libcore/asobj/flash/events/StatusEvent_as.cpp
libcore/asobj/flash/events/StatusEvent_as.h
libcore/asobj/flash/events/SyncEvent_as.cpp
libcore/asobj/flash/events/SyncEvent_as.h
libcore/asobj/flash/events/TextEvent_as.cpp
libcore/asobj/flash/events/TextEvent_as.h
libcore/asobj/flash/events/TimerEvent_as.cpp
libcore/asobj/flash/events/TimerEvent_as.h
libcore/asobj/flash/external/ExternalInterface_as.cpp
libcore/asobj/flash/external/ExternalInterface_as.h
libcore/asobj/flash/external/external.am
libcore/asobj/flash/external/external_pkg.cpp
libcore/asobj/flash/external/external_pkg.h
libcore/asobj/flash/filters/BevelFilter_as.cpp
libcore/asobj/flash/filters/BevelFilter_as.h
libcore/asobj/flash/filters/BitmapFilterQuality_as.cpp
libcore/asobj/flash/filters/BitmapFilterQuality_as.h
libcore/asobj/flash/filters/BitmapFilterType_as.cpp
libcore/asobj/flash/filters/BitmapFilterType_as.h
libcore/asobj/flash/filters/BitmapFilter_as.cpp
libcore/asobj/flash/filters/BitmapFilter_as.h
libcore/asobj/flash/filters/BlurFilter_as.cpp
libcore/asobj/flash/filters/BlurFilter_as.h
libcore/asobj/flash/filters/ColorMatrixFilter_as.cpp
libcore/asobj/flash/filters/ColorMatrixFilter_as.h
libcore/asobj/flash/filters/ConvolutionFilter_as.cpp
libcore/asobj/flash/filters/ConvolutionFilter_as.h
libcore/asobj/flash/filters/DisplacementMapFilterMode_as.cpp
libcore/asobj/flash/filters/DisplacementMapFilterMode_as.h
libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
libcore/asobj/flash/filters/DisplacementMapFilter_as.h
libcore/asobj/flash/filters/DropShadowFilter_as.cpp
libcore/asobj/flash/filters/DropShadowFilter_as.h
libcore/asobj/flash/filters/GlowFilter_as.cpp
libcore/asobj/flash/filters/GlowFilter_as.h
libcore/asobj/flash/filters/GradientBevelFilter_as.cpp
libcore/asobj/flash/filters/GradientBevelFilter_as.h
libcore/asobj/flash/filters/GradientGlowFilter_as.cpp
libcore/asobj/flash/filters/GradientGlowFilter_as.h
libcore/asobj/flash/filters/filters.am
libcore/asobj/flash/filters/filters_pkg.cpp
libcore/asobj/flash/filters/filters_pkg.h
libcore/asobj/flash/flash_pkg.cpp
libcore/asobj/flash/flash_pkg.h
libcore/asobj/flash/geom/ColorTransform_as.cpp
libcore/asobj/flash/geom/ColorTransform_as.h
libcore/asobj/flash/geom/Matrix_as.cpp
libcore/asobj/flash/geom/Matrix_as.h
libcore/asobj/flash/geom/Point_as.cpp
libcore/asobj/flash/geom/Point_as.h
libcore/asobj/flash/geom/Rectangle_as.cpp
libcore/asobj/flash/geom/Rectangle_as.h
libcore/asobj/flash/geom/Transform_as.cpp
libcore/asobj/flash/geom/Transform_as.h
libcore/asobj/flash/geom/geom.am
libcore/asobj/flash/geom/geom_pkg.cpp
libcore/asobj/flash/geom/geom_pkg.h
libcore/asobj/flash/media/Camera_as.cpp
libcore/asobj/flash/media/Camera_as.h
libcore/asobj/flash/media/ID3Info_as.cpp
libcore/asobj/flash/media/ID3Info_as.h
libcore/asobj/flash/media/Microphone_as.cpp
libcore/asobj/flash/media/Microphone_as.h
libcore/asobj/flash/media/SoundChannel_as.cpp
libcore/asobj/flash/media/SoundChannel_as.h
libcore/asobj/flash/media/SoundLoaderContext_as.cpp
libcore/asobj/flash/media/SoundLoaderContext_as.h
libcore/asobj/flash/media/SoundMixer_as.cpp
libcore/asobj/flash/media/SoundMixer_as.h
libcore/asobj/flash/media/SoundTransform_as.cpp
libcore/asobj/flash/media/SoundTransform_as.h
libcore/asobj/flash/media/Sound_as.cpp
libcore/asobj/flash/media/Sound_as.h
libcore/asobj/flash/media/Video_as.cpp
libcore/asobj/flash/media/Video_as.h
libcore/asobj/flash/media/media_as.cpp
libcore/asobj/flash/media/media_as.h
libcore/asobj/flash/net/FileFilter_as.cpp
libcore/asobj/flash/net/FileFilter_as.h
libcore/asobj/flash/net/FileReferenceList_as.cpp
libcore/asobj/flash/net/FileReferenceList_as.h
libcore/asobj/flash/net/FileReference_as.cpp
libcore/asobj/flash/net/FileReference_as.h
libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp
libcore/asobj/flash/net/IDynamicPropertyOutput_as.h
libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp
libcore/asobj/flash/net/IDynamicPropertyWriter_as.h
libcore/asobj/flash/net/LocalConnection_as.cpp
libcore/asobj/flash/net/LocalConnection_as.h
libcore/asobj/flash/net/NetConnection_as.cpp
libcore/asobj/flash/net/NetConnection_as.h
libcore/asobj/flash/net/NetStream_as.cpp
libcore/asobj/flash/net/NetStream_as.h
libcore/asobj/flash/net/ObjectEncoding_as.cpp
libcore/asobj/flash/net/ObjectEncoding_as.h
libcore/asobj/flash/net/Responder_as.cpp
libcore/asobj/flash/net/Responder_as.h
libcore/asobj/flash/net/SharedObjectFlushStatus_as.cpp
libcore/asobj/flash/net/SharedObjectFlushStatus_as.h
libcore/asobj/flash/net/SharedObject_as.cpp
libcore/asobj/flash/net/SharedObject_as.h
libcore/asobj/flash/net/Socket_as.cpp
libcore/asobj/flash/net/Socket_as.h
libcore/asobj/flash/net/URLLoaderDataFormat_as.cpp
libcore/asobj/flash/net/URLLoaderDataFormat_as.h
libcore/asobj/flash/net/URLLoader_as.cpp
libcore/asobj/flash/net/URLLoader_as.h
libcore/asobj/flash/net/URLRequestHeader_as.cpp
libcore/asobj/flash/net/URLRequestHeader_as.h
libcore/asobj/flash/net/URLRequestMethod_as.cpp
libcore/asobj/flash/net/URLRequestMethod_as.h
libcore/asobj/flash/net/URLRequest_as.cpp
libcore/asobj/flash/net/URLRequest_as.h
libcore/asobj/flash/net/URLStream_as.cpp
libcore/asobj/flash/net/URLStream_as.h
libcore/asobj/flash/net/URLVariables_as.cpp
libcore/asobj/flash/net/URLVariables_as.h
libcore/asobj/flash/net/XMLSocket_as.cpp
libcore/asobj/flash/net/XMLSocket_as.h
libcore/asobj/flash/net/net.am
libcore/asobj/flash/net/net_pkg.cpp
libcore/asobj/flash/net/net_pkg.h
libcore/asobj/flash/printing/PrintJobOptions_as.cpp
libcore/asobj/flash/printing/PrintJobOptions_as.h
libcore/asobj/flash/printing/PrintJobOrientation_as.cpp
libcore/asobj/flash/printing/PrintJobOrientation_as.h
libcore/asobj/flash/printing/PrintJob_as.cpp
libcore/asobj/flash/printing/PrintJob_as.h
libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp
libcore/asobj/flash/sampler/DeleteObjectSample_as.h
libcore/asobj/flash/sampler/NewObjectSample_as.cpp
libcore/asobj/flash/sampler/NewObjectSample_as.h
libcore/asobj/flash/sampler/Sample_as.cpp
libcore/asobj/flash/sampler/Sample_as.h
libcore/asobj/flash/sampler/StackFrame_as.cpp
libcore/asobj/flash/sampler/StackFrame_as.h
libcore/asobj/flash/system/ApplicationDomain_as.cpp
libcore/asobj/flash/system/ApplicationDomain_as.h
libcore/asobj/flash/system/Capabilities_as.cpp
libcore/asobj/flash/system/Capabilities_as.h
libcore/asobj/flash/system/IMEConversionMode_as.cpp
libcore/asobj/flash/system/IMEConversionMode_as.h
libcore/asobj/flash/system/IME_as.cpp
libcore/asobj/flash/system/IME_as.h
libcore/asobj/flash/system/LoaderContext_as.cpp
libcore/asobj/flash/system/LoaderContext_as.h
libcore/asobj/flash/system/SecurityDomain_as.cpp
libcore/asobj/flash/system/SecurityDomain_as.h
libcore/asobj/flash/system/SecurityPanel_as.cpp
libcore/asobj/flash/system/SecurityPanel_as.h
libcore/asobj/flash/system/Security_as.cpp
libcore/asobj/flash/system/Security_as.h
libcore/asobj/flash/system/System_as.cpp
libcore/asobj/flash/system/System_as.h
libcore/asobj/flash/text/AntiAliasType_as.cpp
libcore/asobj/flash/text/AntiAliasType_as.h
libcore/asobj/flash/text/CSMSettings_as.cpp
libcore/asobj/flash/text/CSMSettings_as.h
libcore/asobj/flash/text/FontStyle_as.cpp
libcore/asobj/flash/text/FontStyle_as.h
libcore/asobj/flash/text/FontType_as.cpp
libcore/asobj/flash/text/FontType_as.h
libcore/asobj/flash/text/Font_as.cpp
libcore/asobj/flash/text/Font_as.h
libcore/asobj/flash/text/GridFitType_as.cpp
libcore/asobj/flash/text/GridFitType_as.h
libcore/asobj/flash/text/StaticText_as.cpp
libcore/asobj/flash/text/StaticText_as.h
libcore/asobj/flash/text/StyleSheet_as.cpp
libcore/asobj/flash/text/StyleSheet_as.h
libcore/asobj/flash/text/TextColorType_as.cpp
libcore/asobj/flash/text/TextColorType_as.h
libcore/asobj/flash/text/TextDisplayMode_as.cpp
libcore/asobj/flash/text/TextDisplayMode_as.h
libcore/asobj/flash/text/TextFieldAutoSize_as.cpp
libcore/asobj/flash/text/TextFieldAutoSize_as.h
libcore/asobj/flash/text/TextFieldType_as.cpp
libcore/asobj/flash/text/TextFieldType_as.h
libcore/asobj/flash/text/TextField_as.cpp
libcore/asobj/flash/text/TextField_as.h
libcore/asobj/flash/text/TextFormatAlign_as.cpp
libcore/asobj/flash/text/TextFormatAlign_as.h
libcore/asobj/flash/text/TextFormat_as.cpp
libcore/asobj/flash/text/TextFormat_as.h
libcore/asobj/flash/text/TextLineMetrics_as.cpp
libcore/asobj/flash/text/TextLineMetrics_as.h
libcore/asobj/flash/text/TextRenderer_as.cpp
libcore/asobj/flash/text/TextRenderer_as.h
libcore/asobj/flash/text/TextSnapshot_as.cpp
libcore/asobj/flash/text/TextSnapshot_as.h
libcore/asobj/flash/text/text.am
libcore/asobj/flash/text/text_pkg.cpp
libcore/asobj/flash/text/text_pkg.h
libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp
libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.h
libcore/asobj/flash/ui/ContextMenuItem_as.cpp
libcore/asobj/flash/ui/ContextMenuItem_as.h
libcore/asobj/flash/ui/ContextMenu_as.cpp
libcore/asobj/flash/ui/ContextMenu_as.h
libcore/asobj/flash/ui/KeyLocation_as.cpp
libcore/asobj/flash/ui/KeyLocation_as.h
libcore/asobj/flash/ui/Keyboard_as.cpp
libcore/asobj/flash/ui/Keyboard_as.h
libcore/asobj/flash/ui/Mouse_as.cpp
libcore/asobj/flash/ui/Mouse_as.h
libcore/asobj/flash/utils/ByteArray_as.cpp
libcore/asobj/flash/utils/ByteArray_as.h
libcore/asobj/flash/utils/Dictionary_as.cpp
libcore/asobj/flash/utils/Dictionary_as.h
libcore/asobj/flash/utils/Endian_as.cpp
libcore/asobj/flash/utils/Endian_as.h
libcore/asobj/flash/utils/IDataInput_as.cpp
libcore/asobj/flash/utils/IDataInput_as.h
libcore/asobj/flash/utils/IDataOutput_as.cpp
libcore/asobj/flash/utils/IDataOutput_as.h
libcore/asobj/flash/utils/IExternalizable_as.cpp
libcore/asobj/flash/utils/IExternalizable_as.h
libcore/asobj/flash/utils/Proxy_as.cpp
libcore/asobj/flash/utils/Proxy_as.h
libcore/asobj/flash/utils/Timer_as.cpp
libcore/asobj/flash/utils/Timer_as.h
libcore/asobj/flash/xml/XMLDocument_as.cpp
libcore/asobj/flash/xml/XMLDocument_as.h
libcore/asobj/flash/xml/XMLNodeType_as.cpp
libcore/asobj/flash/xml/XMLNodeType_as.h
libcore/asobj/flash/xml/XMLNode_as.cpp
libcore/asobj/flash/xml/XMLNode_as.h
libcore/asobj/int_as.cpp
libcore/asobj/int_as.h
libcore/builtin_function.h
libcore/debugger.cpp
libcore/movie_root.cpp
libcore/swf/DefineFontAlignZonesTag.cpp
libcore/swf/DefineFontAlignZonesTag.h
libcore/swf_function.cpp
libcore/swf_function.h
libcore/vm/ASHandlers.cpp
libcore/vm/CallStack.cpp
libcore/vm/Machine.cpp
libcore/vm/Machine.h
libcore/vm/fn_call.h
libmedia/Makefile.am
libmedia/VideoInput.h
libmedia/gst/VideoInputGst.cpp
libmedia/gst/VideoInputGst.h
testsuite/Makefile.am
testsuite/actionscript.all/System.as
testsuite/libbase.all/TCXXRc.cpp
testsuite/libbase.all/gnashrc.in
testsuite/libcore.all/AsValueTest.cpp
testsuite/libcore.all/Makefile.am
testsuite/libcore.all/PropertyListTest.cpp
testsuite/misc-haxe.all/classes.all/DejaGnu.hx
testsuite/misc-haxe.all/classes.all/system/Security_as.hx
testsuite/misc-haxe.all/classes.all/system/System_as.hx
testsuite/misc-ming.all/DeviceFontTest.c
testsuite/misc-ming.all/Makefile.am
testsuite/network.all/test_allowDomain.cpp
libcore/PropFlags.h
testsuite/libcore.all/PropFlagsTest.cpp
------------------------------------------------------------
revno: 11256.1.8
committer: address@hidden
branch nick: ssh
timestamp: Sat 2009-07-18 17:10:13 -0600
message:
use the correct port if it's been previously set.
modified:
libnet/network.cpp
------------------------------------------------------------
revno: 11256.1.9
committer: address@hidden
branch nick: ssh
timestamp: Mon 2009-07-20 14:57:44 -0600
message:
get server side SSL connections working.
added:
testsuite/network.all/clientcert.pem
testsuite/network.all/clientkey.pem
testsuite/network.all/clientreq.pem
testsuite/network.all/dh1024.pem
testsuite/network.all/dh512.pem
testsuite/network.all/rootcert.pem
testsuite/network.all/rootkey.pem
testsuite/network.all/rootreq.pem
testsuite/network.all/server.pem
testsuite/network.all/serverCA.pem
testsuite/network.all/serverCAcert.pem
testsuite/network.all/serverCAkey.pem
testsuite/network.all/serverCAreq.pem
testsuite/network.all/servercert.pem
testsuite/network.all/serverkey.pem
testsuite/network.all/serverreq.pem
modified:
libnet/sshserver.cpp
libnet/sslclient.cpp
libnet/sslclient.h
libnet/sslserver.cpp
libnet/sslserver.h
testsuite/network.all/client.pem
testsuite/network.all/root.pem
testsuite/network.all/test_ssh.cpp
testsuite/network.all/test_ssl.cpp
=== modified file 'doc/Makefile.am'
--- a/doc/Makefile.am 2009-02-25 22:33:03 +0000
+++ b/doc/Makefile.am 2009-07-20 21:28:19 +0000
@@ -14,8 +14,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
SUBDIRS = C
=== modified file 'libnet/Makefile.am'
--- a/libnet/Makefile.am 2009-07-13 02:29:36 +0000
+++ b/libnet/Makefile.am 2009-07-15 16:08:40 +0000
@@ -76,13 +76,13 @@
cache.cpp
if BUILD_SSL
-libgnashnet_la_SOURCES += sslclient.cpp
-noinst_HEADERS += sslclient.h
+libgnashnet_la_SOURCES += sslclient.cpp sslserver.cpp
+noinst_HEADERS += sslclient.h sslserver.h
endif
if BUILD_SSH
-libgnashnet_la_SOURCES += sshclient.cpp # sshserver.cpp
-noinst_HEADERS += sshclient.h # sshserver.h
+libgnashnet_la_SOURCES += sshclient.cpp sshserver.cpp
+noinst_HEADERS += sshclient.h sshserver.h
endif
if WIN32
=== modified file 'libnet/network.cpp'
--- a/libnet/network.cpp 2009-07-13 02:26:18 +0000
+++ b/libnet/network.cpp 2009-07-18 23:10:13 +0000
@@ -126,7 +126,14 @@
{
// GNASH_REPORT_FUNCTION;
- return createServer(DEFAULTPORT);
+ short port;
+
+ if (_port) {
+ port = _port;
+ } else {
+ port = DEFAULTPORT;
+ }
+ return createServer(port);
}
// FIXME: Should also support IPv6 (AF_INET6)
@@ -483,7 +490,14 @@
{
// GNASH_REPORT_FUNCTION;
- return createClient("localhost", RTMP_PORT);
+ short port;
+
+ if (_port) {
+ port = _port;
+ } else {
+ port = RTMP_PORT;
+ }
+ return createClient("localhost", port);
}
bool
Network::createClient(short /* port */)
@@ -498,7 +512,14 @@
{
// GNASH_REPORT_FUNCTION;
- return createClient(hostname, RTMP_PORT);
+ short port;
+
+ if (_port) {
+ port = _port;
+ } else {
+ port = RTMP_PORT;
+ }
+ return createClient(hostname, port);
}
bool
=== modified file 'libnet/sshclient.cpp'
--- a/libnet/sshclient.cpp 2009-07-13 21:22:34 +0000
+++ b/libnet/sshclient.cpp 2009-07-17 19:35:07 +0000
@@ -79,9 +79,10 @@
_need_server_auth(true),
_state(0),
_session(0),
- _options(0)
+ _options(0),
+ _channel(0)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
// Set the default user name
setUser();
@@ -89,7 +90,7 @@
SSHClient::~SSHClient()
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
sshShutdown();
}
@@ -97,7 +98,8 @@
void
SSHClient::setUser()
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
+
string user = std::getenv("USER");
if (!user.empty()) {
_user = user;
@@ -110,21 +112,20 @@
{
GNASH_REPORT_FUNCTION;
- return sshRead(buf.reference(), buf.allocated());
+ return sshRead(buf.reference(), buf.size());
}
int
-SSHClient::sshRead(boost::uint8_t */* buf */, size_t /* size */)
+SSHClient::sshRead(boost::uint8_t *buf, size_t size)
{
GNASH_REPORT_FUNCTION;
-// ERR_clear_error();
-// int ret = SSH_read(_ssh.get(), buf, size);
-// if (ret < 0) {
-// log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
-// }
+ int ret = channel_read(_channel, buf, size, 0);
+ if (ret < 0) {
+ log_error("SSH read error was: \"%s\"!", ssh_get_error(_session));
+ }
-// return ret;
+ return ret;
}
// Write bytes to the already opened SSH connection
@@ -137,31 +138,30 @@
}
int
-SSHClient::sshWrite(const boost::uint8_t */* buf */, size_t /* length */)
+SSHClient::sshWrite(const boost::uint8_t *buf, size_t size)
{
GNASH_REPORT_FUNCTION;
-// ERR_clear_error();
-// int ret = SSH_write(_ssh.get(), buf, length);
-// if (ret < 0) {
-// log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
-// }
-// return ret;
+ int ret = channel_write(_channel, buf, size);
+ if (ret < 0) {
+ log_error("SSH write error was: \"%s\"!", ssh_get_error(_session));
+ }
+ return ret;
}
// Shutdown the Context for this connection
bool
SSHClient::sshShutdown()
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
if (_session) {
ssh_disconnect(_session);
ssh_finalize();
}
-
+ free(_session);
_session = 0;
-// return closeNet();
+
return true;
}
@@ -175,7 +175,7 @@
bool
SSHClient::sshConnect(int fd, std::string &hostname)
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
char *password;
char *banner;
char *hexa;
@@ -220,7 +220,7 @@
}
switch(_state){
case SSH_SERVER_KNOWN_OK: // ok
- log_debug("SSH Server is cyrrently known: %d", _state);
+ log_debug("SSH Server is currently known: %d", _state);
break;
case SSH_SERVER_KNOWN_CHANGED:
log_error("Host key for server changed : server's one is now: ");
@@ -239,6 +239,8 @@
case SSH_SERVER_NOT_KNOWN:
hexa = ssh_get_hexa(hash, hlen);
free(hash);
+ // FIXME: for now, accecpt all new keys, and update the
+ // $HOME/.ssh/know_hosts file.
#if 0
log_error("The server is unknown. Do you trust the host key ?
(yes,no)");
log_error("Public key hash: %s", hexa);
@@ -295,7 +297,7 @@
free(banner);
}
if(auth != SSH_AUTH_SUCCESS){
-// auth = auth_kbdint(_session);
+ auth = authKbdint(_session);
if(auth == SSH_AUTH_ERROR){
log_error("authenticating with keyb-interactive: %s",
ssh_get_error(_session));
@@ -335,6 +337,130 @@
return true;
}
+int
+SSHClient::authKbdint()
+{
+// GNASH_REPORT_FUNCTION;
+ return authKbdint(_session);
+}
+
+int
+SSHClient::authKbdint(SSH_SESSION *session)
+{
+// GNASH_REPORT_FUNCTION;
+ int err = ssh_userauth_kbdint(session, NULL, NULL);
+ char *name,*instruction,*prompt,*ptr;
+ char buffer[128];
+ int i,n;
+ char echo;
+ while (err == SSH_AUTH_INFO){
+ name = ssh_userauth_kbdint_getname(session);
+ instruction = ssh_userauth_kbdint_getinstruction(session);
+ n=ssh_userauth_kbdint_getnprompts(session);
+ if(strlen(name)>0)
+ log_debug("%s", name);
+ if(strlen(instruction)>0)
+ log_debug("%s", instruction);
+ for(i=0; i<n; ++i){
+ prompt = ssh_userauth_kbdint_getprompt(session, i, &echo);
+ if(echo){
+ log_debug("%s", prompt);
+ fgets(buffer,sizeof(buffer),stdin);
+ buffer[sizeof(buffer)-1]=0;
+ if((ptr=strchr(buffer,'\n')))
+ *ptr=0;
+ if (ssh_userauth_kbdint_setanswer(session, i, buffer) < 0) {
+ return SSH_AUTH_ERROR;
+ }
+ memset(buffer,0,strlen(buffer));
+ } else {
+ ptr=getpass(prompt);
+ if (ssh_userauth_kbdint_setanswer(session, i, ptr) < 0) {
+ return SSH_AUTH_ERROR;
+ }
+ }
+ }
+ err=ssh_userauth_kbdint(session, NULL, NULL);
+ }
+
+ return err;
+}
+
+// Channel operations
+CHANNEL *
+SSHClient::openChannel()
+{
+// GNASH_REPORT_FUNCTION;
+ return openChannel(_session);
+}
+
+
+CHANNEL *
+SSHClient::openChannel(SSH_SESSION *session)
+{
+// GNASH_REPORT_FUNCTION;
+ if (session) {
+ _channel = channel_new(session);
+ if (_channel) {
+ if (channel_open_session(_channel) != SSH_OK) {
+ log_error("Can't open the SSH channel!");
+ }
+ } else {
+ log_error("Can't allocate memory for new SSH channel!");
+ }
+ }
+
+ return _channel;
+}
+
+int
+SSHClient::readChannel(CHANNEL *channel, amf::Buffer &buf)
+{
+// GNASH_REPORT_FUNCTION;
+ int ret = -1;
+
+ if (channel) {
+ ret = channel_read(channel, buf.reference(), buf.size(), 0);
+ } else {
+ log_error("Can't read from a non-existant channel!");
+ }
+
+ return ret;
+}
+
+int
+SSHClient::writeChannel(CHANNEL *channel, amf::Buffer &buf)
+{
+// GNASH_REPORT_FUNCTION;
+ int ret = -1;
+
+ if (channel) {
+ ret = channel_write(channel, buf.reference(), buf.size());
+ } else {
+ log_error("Can't write to a non-existant channel!");
+ }
+}
+
+void
+SSHClient::closeChannel()
+{
+// GNASH_REPORT_FUNCTION;
+ return closeChannel(_channel);
+}
+
+void
+SSHClient::closeChannel(CHANNEL *channel)
+{
+// GNASH_REPORT_FUNCTION;
+
+ if (channel) {
+ channel_close(channel);
+// free(channel);
+ _channel = 0;
+ }
+}
+
+
void
SSHClient::dump() {
// GNASH_REPORT_FUNCTION;
=== modified file 'libnet/sshclient.h'
--- a/libnet/sshclient.h 2009-07-13 21:22:34 +0000
+++ b/libnet/sshclient.h 2009-07-15 21:44:51 +0000
@@ -16,8 +16,8 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-#ifndef GNASH_LIBNET_SSH_H
-#define GNASH_LIBNET_SSH_H
+#ifndef GNASH_SSH_CLIENT_H
+#define GNASH_SSH_CLIENT_H
#ifdef HAVE_CONFIG_H
#include "gnashconfig.h"
@@ -96,9 +96,28 @@
void setTransportType(transport_type_t type) { _transporttype = type; };
transport_type_t getTransportType() { return _transporttype; };
-
+
+ int authKbdint();
+ int authKbdint(SSH_SESSION *);
+
+ // Channel operations
+ CHANNEL *openChannel();
+ CHANNEL *openChannel(SSH_SESSION *session);
+
+ void closeChannel();
+ void closeChannel(CHANNEL *channel);
+
+ // Accessors
+ CHANNEL *getChannel() { return _channel; };
+ SSH_SESSION *getSession() { return _session; };
+ boost::shared_ptr<amf::Buffer> &getBuffer() { return _buffer; };
+
+ // Dump internal data to the screen for debugging
void dump();
- private:
+ protected:
+ int readChannel(CHANNEL *channel, amf::Buffer &buf);
+ int writeChannel(CHANNEL *channel, amf::Buffer &buf);
+
std::string _hostname;
std::string _user;
std::string _password;
@@ -112,12 +131,14 @@
#else
SSH_SESSION *_session;
SSH_OPTIONS *_options;
+ CHANNEL *_channel;
#endif
+ boost::shared_ptr<amf::Buffer> _buffer;
};
} // end of gnash namespace
-// end of GNASH_LIBNET_SSH_H
+// end of GNASH_SSH_CLIENT_H
#endif
// local Variables:
=== added file 'libnet/sshserver.cpp'
--- a/libnet/sshserver.cpp 1970-01-01 00:00:00 +0000
+++ b/libnet/sshserver.cpp 2009-07-20 20:57:44 +0000
@@ -0,0 +1,207 @@
+// ssh.cpp: HyperText Transport Protocol handler for Cygnal, for Gnash.
+//
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <boost/thread/mutex.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/shared_array.hpp>
+#include <boost/scoped_array.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/array.hpp>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <cstring>
+#include <sstream>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <algorithm>
+#include <cstdlib> // getenv
+
+#include "GnashSystemIOHeaders.h" // read()
+#include "sshserver.h"
+#include "amf.h"
+#include "element.h"
+#include "cque.h"
+#include "log.h"
+#include "network.h"
+#include "utility.h"
+#include "buffer.h"
+#include "diskstream.h"
+#include "cache.h"
+
+extern "C" {
+# include <libssh/libssh.h>
+# include <libssh/sftp.h>
+}
+#include "sshclient.h"
+#include "sshserver.h"
+
+#if defined(_WIN32) || defined(WIN32)
+# define __PRETTY_FUNCTION__ __FUNCDNAME__
+# include <winsock2.h>
+# include <direct.h>
+#else
+# include <unistd.h>
+# include <sys/param.h>
+#endif
+
+using namespace gnash;
+using namespace std;
+
+static boost::mutex stl_mutex;
+
+namespace gnash
+{
+
+const char *PASSWORD = "none";
+
+SSHServer::SSHServer()
+{
+// GNASH_REPORT_FUNCTION;
+
+ // Set the default user name
+ setUser();
+}
+
+SSHServer::~SSHServer()
+{
+// GNASH_REPORT_FUNCTION;
+
+ sshShutdown();
+}
+
+// Authenticate the password from the user
+bool
+SSHServer::authPassword(string &user, string &passwd)
+{
+}
+
+bool
+SSHServer::authPassword(SSH_SESSION *session, string &user, string &passwd)
+{
+}
+
+// Wait for an incoming network connection
+bool
+SSHServer::acceptConnections()
+{
+}
+
+bool
+SSHServer::acceptConnections(short port)
+{
+}
+
+bool
+SSHServer::acceptConnections(SSH_SESSION *session)
+{
+}
+
+bool
+SSHServer::acceptConnections(SSH_SESSION *session, short port)
+{
+}
+
+// Parse an SSH command message and do something
+bool
+SSHServer::processSSHMessage(SSH_MESSAGE *message)
+{
+ if (!message) {
+ return false;
+ }
+ switch(ssh_message_type(message)){
+ case SSH_AUTH_REQUEST:
+ switch(ssh_message_subtype(message)) {
+ // not authenticated, send default message
+ case SSH_AUTH_NONE:
+ break;
+ case SSH_AUTH_PASSWORD:
+ {
+ log_debug("User %s wants to auth with pass %s\n",
+ ssh_message_auth_user(message),
+ ssh_message_auth_password(message));
+ string user = ssh_message_auth_user(message);
+ string passwd = ssh_message_auth_password(message);
+ if (authPassword(user, passwd)){
+ // auth=1;
+ ssh_message_auth_reply_success(message,0);
+ break;
+ }
+ break;
+ }
+ case SSH_AUTH_HOSTBASED:
+ break;
+ case SSH_AUTH_PUBLICKEY:
+ break;
+ case SSH_AUTH_KEYBINT:
+ break;
+ case SSH_AUTH_UNKNOWN:
+ break;
+ default:
+ ssh_message_auth_set_methods(message,SSH_AUTH_PASSWORD);
+ ssh_message_reply_default(message);
+ break;
+ }
+ case SSH_CHANNEL_REQUEST_OPEN:
+ if(ssh_message_subtype(message)==SSH_CHANNEL_SESSION){
+ _channel = ssh_message_channel_request_open_reply_accept(message);
+ break;
+ }
+ break;
+// case SSH_CHANNEL_REQUEST_EXEC:
+// break;
+ case SSH_CHANNEL_REQUEST_ENV:
+ break;
+ case SSH_CHANNEL_REQUEST_SUBSYSTEM:
+ break;
+ case SSH_CHANNEL_REQUEST_WINDOW_CHANGE:
+ break;
+ case SSH_CHANNEL_REQUEST_UNKNOWN:
+ break;
+ default:
+ ssh_message_reply_default(message);
+ }
+ ssh_message_free(message);
+}
+
+void
+SSHServer::dump() {
+// GNASH_REPORT_FUNCTION;
+
+ boost::mutex::scoped_lock lock(stl_mutex);
+
+ log_debug (_("==== The SSH header breaks down as follows: ===="));
+
+ ssh_version(0);
+}
+
+} // end of gnash namespace
+
+
+// local Variables:
+// mode: C++
+// indent-tabs-mode: t
+// End:
=== added file 'libnet/sshserver.h'
--- a/libnet/sshserver.h 1970-01-01 00:00:00 +0000
+++ b/libnet/sshserver.h 2009-07-17 19:35:07 +0000
@@ -0,0 +1,97 @@
+//
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifndef GNASH_SSH_SERVER_H
+#define GNASH_SSH_SERVER_H
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <string>
+#include <boost/array.hpp>
+#include <map>
+#include <vector>
+#include <boost/shared_ptr.hpp>
+#include <boost/shared_array.hpp>
+#include <boost/scoped_array.hpp>
+#include <boost/cstdint.hpp>
+#include <sstream>
+
+extern "C" {
+#include <libssh/libssh.h>
+#include <libssh/sftp.h>
+#include <libssh/server.h>
+}
+
+#include "sshclient.h"
+#include "cque.h"
+#include "network.h"
+#include "buffer.h"
+
+namespace gnash
+{
+
+extern const char *ROOTPATH;
+extern const char *HOST;
+extern const char *CA_LIST;
+extern const char *RANDOM;
+extern const char *KEYFILE;
+extern const size_t SSH_PASSWD_SIZE;
+
+class DSOEXPORT SSHServer : public SSHClient {
+ public:
+ typedef enum {NO_AUTHTYPE, DSS, RSA} authtype_t;
+ typedef enum {NO_TRANSPORT, RAW, SFTP} transport_type_t;
+
+ SSHServer();
+ ~SSHServer();
+
+ // Authenticate the password from the user
+ bool authPassword(std::string &user, std::string &passwd);
+ bool authPassword(SSH_SESSION *session, std::string &user, std::string
&passwd);
+
+ // Wait for an incoming network connection
+ bool acceptConnections();
+ bool acceptConnections(short port);
+ bool acceptConnections(SSH_SESSION *session);
+ bool acceptConnections(SSH_SESSION *session, short port);
+
+ // Parse an SSH command message and do something
+ bool processSSHMessage(SSH_MESSAGE *message);
+
+ void dump();
+ protected:
+ // Get the SSH command message
+ SSH_MESSAGE *getSSHMessage();
+ SSH_MESSAGE *getSSHMessage(SSH_SESSION *session);
+
+ SSH_SESSION *_session; // the current session
+ SSH_OPTIONS *_options; // the current list of options
+ SSH_MESSAGE *_message; // the current SSH command message
+};
+
+} // end of gnash namespace
+
+// end of GNASH_SSH_SERVER_H
+#endif
+
+// local Variables:
+// mode: C++
+// indent-tabs-mode: t
+// End:
=== modified file 'libnet/sslclient.cpp'
--- a/libnet/sslclient.cpp 2009-06-17 19:52:47 +0000
+++ b/libnet/sslclient.cpp 2009-07-20 20:57:44 +0000
@@ -54,6 +54,7 @@
#ifdef HAVE_OPENSSL_SSL_H
#include <openssl/ssl.h>
#include <openssl/err.h>
+#include <openssl/rand.h>
#endif
#if defined(_WIN32) || defined(WIN32)
@@ -69,6 +70,9 @@
using namespace std;
static boost::mutex stl_mutex;
+// The debug log used by all the gnash libraries.
+
+static LogFile& dbglogfile = LogFile::getDefaultInstance();
// This is static in this file, instead of being a private variable in
// the SSLCLient class, is so it's accessible from the C function callback,
@@ -79,24 +83,32 @@
namespace gnash
{
-const char *ROOTPATH = "/etc/pki/tls";
-const char *HOST = "localhost";
-const char *CA_LIST = "root.pem";
-const char *RANDOM = "random.pem";
-const char *KEYFILE = "client.pem";
const size_t SSL_PASSWD_SIZE = 1024;
+const char *SSL_HOST = "localhost";
+const char *SSL_CA_LIST = "rootcert.pem";
+const char *SSL_CLIENT_CERTFILE = "client.pem";
+const char *SSL_CLIENT_ROOTPATH = "/etc/pki/tls";
+
+// const char *RANDOM = "random.pem";
SSLClient::SSLClient()
: _hostname("localhost"),
- _calist(CA_LIST),
- _keyfile(KEYFILE),
- _rootpath(ROOTPATH),
+ _calist(SSL_CA_LIST),
+ _keyfile(SSL_CLIENT_CERTFILE),
+ _rootpath(SSL_CLIENT_ROOTPATH),
_need_server_auth(true)
{
GNASH_REPORT_FUNCTION;
// setPort(SSL_PORT);
- setPassword("password");
+ setPassword("foobar");
+
+ // Initialize SSL library
+ SSL_library_init();
+ RAND_load_file("/dev/urandom", 1024);
+
+ // Load the error strings so the SSL_error_*() functions work
+ SSL_load_error_strings();
}
SSLClient::~SSLClient()
@@ -160,11 +172,12 @@
SSLClient::sslSetupCTX(std::string &keyspec, std::string &caspec)
{
GNASH_REPORT_FUNCTION;
- SSL_METHOD *meth;
+// SSL_METHOD *meth;
int ret;
string keyfile;
string cafile;
+#if 1
if (keyspec.find('/', 0) != string::npos) {
keyfile = keyspec;
} else {
@@ -181,18 +194,26 @@
cafile += "/";
cafile += caspec;
}
-
- // Initialize SSL library
- SSL_library_init();
-
- // Load the error strings so the SSL_error_*() functions work
- SSL_load_error_strings();
-
+#else
+ keyfile = keyspec;
+ cafile = caspec;
+#endif
+
// create the context
- meth = SSLv23_method();
- _ctx.reset(SSL_CTX_new(meth));
+ _ctx.reset(SSL_CTX_new( SSLv23_method()));
+
+ ERR_clear_error();
+ if (!(SSL_CTX_load_verify_locations(_ctx.get(), cafile.c_str(),
+ _rootpath.c_str()))) {
+ log_error("Can't read CA list from \"%s\"!", cafile);
+ log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
+ return false;
+ } else {
+ log_debug("Read CA list from \"%s\"", cafile);
+ }
// Load our keys and certificates
+ ERR_clear_error();
if ((ret = SSL_CTX_use_certificate_chain_file(_ctx.get(),
keyfile.c_str())) != 1) {
log_error("Can't read certificate file \"%s\"!", keyfile);
return false;
@@ -200,32 +221,24 @@
log_debug("Read certificate file \"%s\".", keyfile);
}
- // Set the passwor dcallback
+ // Set the password as a callback, otherwise we get prompted for it
SSL_CTX_set_default_passwd_cb(_ctx.get(), password_cb);
// Add the first private key in the keyfile to the context.
ERR_clear_error();
if((ret = SSL_CTX_use_PrivateKey_file(_ctx.get(), keyfile.c_str(),
SSL_FILETYPE_PEM)) != 1) {
- log_error("Can't read key file \"%s\"!", keyfile);
- log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
- return false;
- } else {
- log_error("Read key file \"%s\".", keyfile);
- }
-
- // Load the CAs we trust
- ERR_clear_error();
- if (!(SSL_CTX_load_verify_locations(_ctx.get(), cafile.c_str(), 0))) {
- log_error("Can't read CA list from \"%s\"!", cafile);
- log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
- return false;
- } else {
- log_debug("Read CA list from \"%s\"", cafile);
- }
-
+ log_error("Can't read CERT file \"%s\"!", keyfile);
+ log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
+ return false;
+ } else {
+ log_debug("Read key file \"%s\".", keyfile);
+ }
+
+ SSL_CTX_set_verify(_ctx.get(), SSL_VERIFY_PEER, verify_callback);
+
#if (OPENSSL_VERSION_NUMBER < 0x00905100L)
- SSL_CTX_set_verify_depth(_ctx.get() ,1);
+ SSL_CTX_set_verify_depth(_ctx.get(), 4);
#endif
return true;
@@ -235,11 +248,12 @@
bool
SSLClient::sslShutdown()
{
- GNASH_REPORT_FUNCTION;
+// GNASH_REPORT_FUNCTION;
+// SSL_clear(_ssl.get());
+ SSL_free(_ssl.get());
SSL_CTX_free(_ctx.get());
-// return closeNet();
return true;
}
@@ -247,11 +261,11 @@
bool
SSLClient::sslConnect(int fd)
{
- return sslConnect(fd, _hostname);
+ return sslConnect(fd, _hostname, 0);
}
bool
-SSLClient::sslConnect(int fd, std::string &hostname)
+SSLClient::sslConnect(int fd, std::string &hostname, short port)
{
GNASH_REPORT_FUNCTION;
int ret;
@@ -263,7 +277,7 @@
}
_ssl.reset(SSL_new(_ctx.get()));
-
+
// // Make a tcp/ip connect to the server
// if (createClient(hostname, getPort()) == false) {
// log_error("Can't connect to server %s", hostname);
@@ -272,7 +286,21 @@
// Handshake the server
ERR_clear_error();
+#if 0
_bio.reset(BIO_new_socket(fd, BIO_NOCLOSE));
+#else
+// BIO_set_conn_hostname(_bio.get(), _hostname.c_str());
+ _bio.reset(BIO_new_connect(const_cast<char *>(_hostname.c_str())));
+
+ BIO_set_conn_int_port(_bio.get(), &port);
+ log_debug("PORT is: %d", BIO_get_conn_port(_bio.get()));
+
+ if (BIO_do_connect(_bio.get()) <= 0) {
+ log_error("Error connecting to remote machine: %s",
+ ERR_reason_error_string(ERR_get_error()));
+ }
+#endif
+
SSL_set_bio(_ssl.get(), _bio.get(), _bio.get());
if ((ret = SSL_connect(_ssl.get())) < 0) {
@@ -290,18 +318,11 @@
}
#endif
+ SSL_set_connect_state(_ssl.get());
+
return true;
}
-// sslAccept() is how the server waits for connections for clients
-size_t
-SSLClient::sslAccept()
-{
- GNASH_REPORT_FUNCTION;
-
- return 0;
-}
-
bool
SSLClient::checkCert()
{
@@ -376,9 +397,10 @@
// This is the callback required when setting up the password.
int
-password_cb(char *buf, int size, int rwflag, void * /* userdata */)
+password_cb(char *buf, int size, int /* rwflag */, void * /* userdata */)
{
-// GNASH_REPORT_FUNCTION;
+ GNASH_REPORT_FUNCTION;
+
log_debug("Callback executed to set the SSL password, size is: %d",
password.size());
@@ -392,9 +414,34 @@
// std::copy(buf, buf + size, password.data());
std::copy(password.begin(), password.end(), buf);
+
return(password.size());
}
+
+int
+verify_callback(int ok, X509_STORE_CTX *store)
+{
+ GNASH_REPORT_FUNCTION;
+
+ char data[256];
+
+ if (!ok) {
+ X509 *cert = X509_STORE_CTX_get_current_cert(store);
+ int depth = X509_STORE_CTX_get_error_depth(store);
+ int err = X509_STORE_CTX_get_error(store);
+
+ log_error("-Error with certificate at depth: %i\n", depth);
+ X509_NAME_oneline(X509_get_issuer_name(cert), data, 256);
+ log_error(" issuer = %s\n", data);
+ X509_NAME_oneline(X509_get_subject_name(cert), data, 256);
+ log_error(" subject = %s\n", data);
+ log_error("err %i:%s\n", err, X509_verify_cert_error_string(err));
+ }
+
+ return ok;
+}
+
} // end of extern C
} // end of gnash namespace
=== modified file 'libnet/sslclient.h'
--- a/libnet/sslclient.h 2009-06-17 19:52:47 +0000
+++ b/libnet/sslclient.h 2009-07-20 20:57:44 +0000
@@ -77,10 +77,7 @@
// sslConnect() is how the client connects to the server
bool sslConnect(int fd);
- bool sslConnect(int fd, std::string &hostname);
-
- // sslAccept() is how the server waits for connections for clients
- size_t sslAccept();
+ bool sslConnect(int fd, std::string &hostname, short port);
void setKeyfile(std::string filespec) { _keyfile = filespec; };
std::string &getKeyfile() { return _keyfile; };
@@ -111,7 +108,7 @@
bool checkCert(std::string &hostname);
void dump();
- private:
+ protected:
boost::scoped_ptr<SSL> _ssl;
boost::scoped_ptr<SSL_CTX> _ctx;
boost::scoped_ptr<BIO> _bio;
@@ -128,6 +125,7 @@
extern "C" {
// This is the callback required when setting up the password
int password_cb(char *buf, int size, int rwflag, void *userdata);
+ int verify_callback(int ok, X509_STORE_CTX *store);
}
=== added file 'libnet/sslserver.cpp'
--- a/libnet/sslserver.cpp 1970-01-01 00:00:00 +0000
+++ b/libnet/sslserver.cpp 2009-07-20 20:57:44 +0000
@@ -0,0 +1,191 @@
+// ssl.cpp: HyperText Transport Protocol handler for Cygnal, for Gnash.
+//
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <boost/thread/mutex.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/shared_array.hpp>
+#include <boost/scoped_array.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/array.hpp>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <cstring>
+#include <sstream>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <algorithm>
+#include <cstdlib> // getenv
+
+#include "GnashSystemIOHeaders.h" // read()
+#include "sslserver.h"
+#include "amf.h"
+#include "element.h"
+#include "cque.h"
+#include "log.h"
+#include "network.h"
+#include "utility.h"
+#include "buffer.h"
+#include "diskstream.h"
+#include "cache.h"
+#include "sslclient.h"
+#include "sslserver.h"
+
+#ifdef HAVE_OPENSSL_SSL_H
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#endif
+
+
+#if defined(_WIN32) || defined(WIN32)
+# define __PRETTY_FUNCTION__ __FUNCDNAME__
+# include <winsock2.h>
+# include <direct.h>
+#else
+# include <unistd.h>
+# include <sys/param.h>
+#endif
+
+using namespace gnash;
+using namespace std;
+
+static boost::mutex stl_mutex;
+
+namespace gnash
+{
+
+const char *SERVER_KEYFILE = "server.pem";
+
+static unsigned char dh512_p[]={
+ 0xA6,0xBB,0x71,0x4A,0xE2,0x37,0x18,0x30,0xD9,0x0C,0x21,0x94,
+ 0x6C,0x0E,0xC7,0xBB,0x0A,0xA5,0x5B,0x28,0x9D,0x9F,0x85,0x4A,
+ 0x69,0x7F,0x3E,0x4E,0x28,0x2F,0x43,0x1D,0xE5,0x84,0x94,0x41,
+ 0xC3,0x09,0xFA,0xC3,0x32,0xDE,0x9A,0xF1,0x92,0x4D,0xAA,0x30,
+ 0x1E,0x39,0x98,0x0A,0xD3,0x87,0xC1,0xC8,0xE5,0xEC,0x9E,0x45,
+ 0x37,0x7B,0xB8,0xAB,
+ };
+static unsigned char dh512_g[]={
+ 0x02,
+ };
+
+const char *SERVER_PASSWORD = "none";
+const char *DHFILE = "dh1024.pem";
+
+SSLServer::SSLServer()
+{
+// GNASH_REPORT_FUNCTION;
+}
+
+SSLServer::~SSLServer()
+{
+// GNASH_REPORT_FUNCTION;
+
+ sslShutdown();
+}
+
+bool
+SSLServer::loadDhParams(char *file)
+{
+// GNASH_REPORT_FUNCTION;
+ return loadDhParams(_ctx.get(), file);
+}
+
+bool
+SSLServer::loadDhParams(SSL_CTX *ctx, char *file)
+{
+// GNASH_REPORT_FUNCTION;
+ DH *dh = 0;
+
+// ret = get_dh512();
+ if ((dh = DH_new()) == NULL) {
+ return false;
+ } else {
+ dh->p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
+ dh->g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
+ if ((dh->p == NULL) || (dh->g == NULL)) {
+ free(dh);
+ dh = NULL;
+ }
+ }
+
+ if (dh && ctx) {
+ if (SSL_CTX_set_tmp_dh(ctx, dh) < 0) {
+ log_error("ssl!!", "Couldn't set DH parameters: %s ",
+ ERR_reason_error_string(ERR_get_error()));
+ return false;
+ }
+ }
+ return true;
+}
+
+// sslAccept() is how the server waits for connections for clients
+size_t
+SSLServer::sslAccept(int fd)
+{
+ GNASH_REPORT_FUNCTION;
+
+ setKeyfile(SERVER_KEYFILE);
+ if (!_ctx) {
+ if (!sslSetupCTX()) {
+ return false;
+ }
+ }
+
+ loadDhParams(_ctx.get(), const_cast<char *>(DHFILE));
+
+ log_debug(_("Got an incoming SSL connection request"));
+
+ _bio.reset(BIO_new_socket(fd, BIO_NOCLOSE));
+
+ _ssl.reset(SSL_new(_ctx.get()));
+ SSL_set_accept_state(_ssl.get());
+ SSL_set_bio(_ssl.get(), _bio.get(), _bio.get());
+
+ int ret = 0;
+ if((ret = SSL_accept(_ssl.get()) <= 0)) {
+ log_error("Error was: \"%s\"!",
ERR_reason_error_string(ERR_get_error()));
+
+ }
+
+ return 0;
+}
+
+void
+SSLServer::dump() {
+// GNASH_REPORT_FUNCTION;
+
+ boost::mutex::scoped_lock lock(stl_mutex);
+
+ log_debug (_("==== The SSL header breaks down as follows: ===="));
+}
+
+} // end of gnash namespace
+
+
+// local Variables:
+// mode: C++
+// indent-tabs-mode: t
+// End:
=== added file 'libnet/sslserver.h'
--- a/libnet/sslserver.h 1970-01-01 00:00:00 +0000
+++ b/libnet/sslserver.h 2009-07-20 20:57:44 +0000
@@ -0,0 +1,84 @@
+//
+// Copyright (C) 2009 Free Software Foundation, Inc.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+#ifndef GNASH_SSL_SERVER_H
+#define GNASH_SSL_SERVER_H
+
+#ifdef HAVE_CONFIG_H
+#include "gnashconfig.h"
+#endif
+
+#include <string>
+#include <boost/array.hpp>
+#include <map>
+#include <vector>
+#include <boost/shared_ptr.hpp>
+#include <boost/shared_array.hpp>
+#include <boost/scoped_array.hpp>
+#include <boost/cstdint.hpp>
+#include <sstream>
+
+#ifdef HAVE_OPENSSL_SSL_H
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#endif
+
+#include "sslclient.h"
+#include "cque.h"
+#include "network.h"
+#include "buffer.h"
+
+namespace gnash
+{
+
+extern const char *ROOTPATH;
+extern const char *HOST;
+extern const char *CA_LIST;
+extern const char *RANDOM;
+extern const char *KEYFILE;
+extern const char *SERVER_KEYFILE;
+extern const size_t SSL_PASSWD_SIZE;
+extern const char *PASSWORD;
+extern const char *DHFILE;
+
+class DSOEXPORT SSLServer : public SSLClient {
+ public:
+ SSLServer();
+ ~SSLServer();
+
+ bool loadDhParams(char *file);
+ bool loadDhParams(SSL_CTX *ctx, char *file);
+
+ void generateEphRSAKey(SSL_CTX *ctx);
+
+ // sslAccept() is how the server waits for connections for clients
+ size_t sslAccept(int fd);
+
+ // display internal data to the terminal
+ void dump();
+};
+
+} // end of gnash namespace
+
+// end of GNASH_SSL_SERVER_H
+#endif
+
+// local Variables:
+// mode: C++
+// indent-tabs-mode: t
+// End:
=== modified file 'testsuite/network.all/client.pem'
--- a/testsuite/network.all/client.pem 2009-06-15 03:22:47 +0000
+++ b/testsuite/network.all/client.pem 2009-07-20 20:57:44 +0000
@@ -1,32 +1,51 @@
+-----BEGIN CERTIFICATE-----
+MIICZjCCAc+gAwIBAgIJAJx5ndQ9slTkMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTMw
+WhcNMDkwODE4MDA0OTMwWjBeMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRcwFQYDVQQD
+Ew5zaGVsbC56b3JrLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnfVM
+m+uNoNlMsDegf13NK1nNggoXVsURmDbZ44pj7vEnQqLAhXyB6qGnXQJCbdVRDoGE
+X8YXMBL46qvU5Op1QelOnAhrePTq7Z8i9BO5pxFh1FhHARCTzaEK+SDmsL/VZLhH
+V2kn1eQWWSayWb6rDfhwSOUiZIihqAR+Jx5T+0ECAwEAAaMzMDEwCQYDVR0TBAIw
+ADAkBgNVHREEHTAbgg5zaGVsbC56b3JrLm9yZ4IJbG9jYWxob3N0MA0GCSqGSIb3
+DQEBBQUAA4GBACItg0vs58Nah2xmRguCyl5Y6opHhgKNhvQ5loxM+LDESbJjXRYB
+nNRP+ITHSNtwWyDUP212qQsumZt+rGquXj7N3VEG9nAxwvj4rirpWafv8n8435M5
+KMZKmE9bIYUOOxiEfavS0qIgENkk+D0+EC3kydRwxg43cul1YIiTmsiB
+-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,6D3B09E4CA5421FF
+DEK-Info: DES-EDE3-CBC,96D8E7777AA15527
-SaDJA2MhJ12ZmDxfGkSLhQgjYPEQYqVfs5b4DZTz+9pJqzuNxHrZZU43oArbWBdB
-3DKc1THejbyHF2lY7xgPLk/5iax5r+CXesDKZroSliHyERBIOCUgDN6ecwvVGtYv
-C8IhlwGPEXyxr59lyV37RjkSUVXYBqiRbLlNIcQtp5T6GkFe+yftOnv6/UADCLTS
-Pu8xwkda1rf7dgPwYIKuk2SOTTe1VMDtWacRUGu8NteTJ4aiVaeeo9wdsKId5U2b
-Z7NTJjOjvdXOLRonfkGvDXmrmN4eICks0bV0ZBtkULAfGjKNGs6riY+XNGKNRmjI
-idRRB0za+EGorpiJ/vbe7n7uaFXIJlfqCwhTi4Up3mS8sR4tLHfmdjp85GV9P9B3
-xX3CHIeG5/EYDt0Qn1gRL5ODL/0O7nFGJslhcQUS6bMmcg9nSzhClTE2gREz0j9g
-pwzvRpEkIl3Tw4niZLIX8fW2cEIyKTBMCCG2MDwHHgXRL3SUXkOGeitFefkcXN/z
-/UWRS8XQcX7/lGWCiuEpgn+esoirjf8lFNVsx6OT0UXj3oBxGrz1iB/vpu/PMBVQ
-JsbEPSh/ElHSDUItw2ytjJmkolRtM01b7cFj16ZxbHjinXWTIGZFWUYIlaeA2zHK
-D/NRMFJwjrQYhjRgPqltvbw7M01Co7SNFBwSotARr36FBjsxbOH3F1jY6w+kXvJU
-X5m83C9UONM2K7kkKYXbE2yW+kzJF2LFX0Uu4yDluxNG767/WwqiQSI63aIzNAPp
-rSsaIMBSbVZia8q49gcvGyuvqBZpwm/PcZwr/PHJjvGs8hdU1ACmyQ==
+B8Rk+yT8/7YQp/KJwxxejA7y3dLi/gjMU1nKnQYiTgPK6vxSt9FKsJuYU9b6OCDJ
+A/3PsgdyKIsz0GSIQdB9wLpgaW5Zggq4tLqL4xIcyjwRbRUw5AR00gCeg6shfUtq
+PzeY0juo70IrkM5pNuKbvEK464YCvD3trASIpDV/zI1Z5YvEOv/NyElvR5qomKly
+hdO/0hCh+yAFMIYe6kbY3Jmsfw6hjukf3yeCmDkRICz1vKNjnmSdt/lEeQH8A6Q9
+zR/5xKfUxQLHtAlO1DeXozqjO95+1hFPWYA0PiKTrEYMATuYrN4mL2qLG5deMOUb
+zYhyFHozVAA38a8FobLeO5urosxeSJ1+quIFqsTNLQDK27+AH9UtjC8Kzn37XArj
+mHVzSfFyhTKOZi2DdJZEsr/V0dhIoR2bqX6XZ7CtNV1rgUUeQf63UflU1Y8pxTkm
+NnaviP19WKxjoupvo+VwvFNudMcKVhBoSrly0AojomGvFaWP8HGvDmH9aOwL+xwz
+5SGTv2R/PUyygxle+jOSJUH64UZNC3R3R2hnfH3+uuIonLHbcIVvh/JhbLr1+JTn
+HldnwcW11sYqXxYCmqKImxPesceyyTeYU+kAprOMr0+TX9RkGXQcPH6gMtt5GUr4
+SvuRJhuJK4c5tFZz/unOE7duqOU1r27b1c5eY7N9PvyU6O4d4TCKLCJBhaGHw2F3
+DXBtK5WYVPYf8bfHPEx9cAvI82spsYOOiCpvWe6rBMlO5HrED7Srn3PoCh4m5A5F
+TehWazwH/M/lg9oB+Ge4ngAwuoI1l9djaToma/IFrcPG8vstMfAEXA==
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-MIICFTCCAX4CAgECMA0GCSqGSIb3DQEBBAUAMFcxCzAJBgNVBAYTAlVTMRMwEQYD
-VQQKEwpSVEZNLCBJbmMuMRkwFwYDVQQLExBXaWRnZXRzIERpdmlzaW9uMRgwFgYD
-VQQDEw9UZXN0IENBMjAwMTA1MTcwHhcNMDEwNTE3MTYxMTM2WhcNMDQwMzA2MTYx
-MTM2WjBOMQswCQYDVQQGEwJVUzETMBEGA1UEChMKUlRGTSwgSW5jLjEZMBcGA1UE
-CxMQV2lkZ2V0cyBEaXZpc2lvbjEPMA0GA1UEAxMGY2xpZW50MIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQCHNWSoNh6msUwYGGd7TYQDsdSG0ao6QXaYjk+78ZyM
-QeZUBu2dZFjG4wnzkKwrD4rp/J5PLR9AdxR72lb9AavEOKL2UDHJGsscZkGVw/bz
-ZbxrKF2rvdpZSvKP1OhV1MOds/WTpRm1gcmVSoV5vLOMqVjzjHoxQ/+1zpjzMxWL
-0wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACTJhRR5tv8A7dc5+zmKR1Q/i8qE3Mrn
-mp/MOXHfX+ifJ/w+twoc/yd4En+7pr+hGsiTofct1JOZDW9Akq/ZGu1+NpVRT7Cw
-53EdMwpi7ArwZAsLIUBsKA7QmLTbdwjU5S7WlZ24eygZHyqZrK4Few+JuzlFkkoI
-FIDCfinyz24m
+MIIC6DCCAlGgAwIBAgIJAJDs36FxozmwMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTA3
+WhcNMDkwODE4MDA0OTA3WjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQD
+EwdSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAFgPu30CYZUx0
+8OOXJUtXIPrE8vjAfWCGAoVJFd4k8XHZ0W2z17zmOqwqIk0NVZFHz0pnSUJr3OuM
+cPN6UbH7wZUIOYDFnLE7LeuujCQ5/U70jAJYbP4I7KpjG8D2if73uQ7zqeF5CY4F
+LZrsG+vdgA+YWFiJySJ8emrYXJImaQIDAQABo4G7MIG4MAwGA1UdEwQFMAMBAf8w
+HQYDVR0OBBYEFN3HUWAXPqGKbM/a5fRI9oIusFUkMIGIBgNVHSMEgYAwfoAU3cdR
+YBc+oYpsz9rl9Ej2gi6wVSShW6RZMFcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhW
+aXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8GA1UEChMIWm9yay5vcmcxEDAO
+BgNVBAMTB1Jvb3QgQ0GCCQCQ7N+hcaM5sDANBgkqhkiG9w0BAQUFAAOBgQAXkTab
+4Eypn+ZoGdSc4X+Z83Q+GFBjM500nplQGrVLL6xY5lEk7FEZkgWV9qm58iqvOYKd
+qLQEg63UIvd0ZPYsXRNlNBxtftNeZSDn0NYqEFcUtsum0EN/TrWP4Jw8JscJMvCV
+3oMXrwf15rg+/VBKxEkecGiiTMLXA/JIBnmuhA==
-----END CERTIFICATE-----
=== added file 'testsuite/network.all/clientcert.pem'
--- a/testsuite/network.all/clientcert.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/clientcert.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICZjCCAc+gAwIBAgIJAJx5ndQ9slTkMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTMw
+WhcNMDkwODE4MDA0OTMwWjBeMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRcwFQYDVQQD
+Ew5zaGVsbC56b3JrLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnfVM
+m+uNoNlMsDegf13NK1nNggoXVsURmDbZ44pj7vEnQqLAhXyB6qGnXQJCbdVRDoGE
+X8YXMBL46qvU5Op1QelOnAhrePTq7Z8i9BO5pxFh1FhHARCTzaEK+SDmsL/VZLhH
+V2kn1eQWWSayWb6rDfhwSOUiZIihqAR+Jx5T+0ECAwEAAaMzMDEwCQYDVR0TBAIw
+ADAkBgNVHREEHTAbgg5zaGVsbC56b3JrLm9yZ4IJbG9jYWxob3N0MA0GCSqGSIb3
+DQEBBQUAA4GBACItg0vs58Nah2xmRguCyl5Y6opHhgKNhvQ5loxM+LDESbJjXRYB
+nNRP+ITHSNtwWyDUP212qQsumZt+rGquXj7N3VEG9nAxwvj4rirpWafv8n8435M5
+KMZKmE9bIYUOOxiEfavS0qIgENkk+D0+EC3kydRwxg43cul1YIiTmsiB
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/clientkey.pem'
--- a/testsuite/network.all/clientkey.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/clientkey.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,96D8E7777AA15527
+
+B8Rk+yT8/7YQp/KJwxxejA7y3dLi/gjMU1nKnQYiTgPK6vxSt9FKsJuYU9b6OCDJ
+A/3PsgdyKIsz0GSIQdB9wLpgaW5Zggq4tLqL4xIcyjwRbRUw5AR00gCeg6shfUtq
+PzeY0juo70IrkM5pNuKbvEK464YCvD3trASIpDV/zI1Z5YvEOv/NyElvR5qomKly
+hdO/0hCh+yAFMIYe6kbY3Jmsfw6hjukf3yeCmDkRICz1vKNjnmSdt/lEeQH8A6Q9
+zR/5xKfUxQLHtAlO1DeXozqjO95+1hFPWYA0PiKTrEYMATuYrN4mL2qLG5deMOUb
+zYhyFHozVAA38a8FobLeO5urosxeSJ1+quIFqsTNLQDK27+AH9UtjC8Kzn37XArj
+mHVzSfFyhTKOZi2DdJZEsr/V0dhIoR2bqX6XZ7CtNV1rgUUeQf63UflU1Y8pxTkm
+NnaviP19WKxjoupvo+VwvFNudMcKVhBoSrly0AojomGvFaWP8HGvDmH9aOwL+xwz
+5SGTv2R/PUyygxle+jOSJUH64UZNC3R3R2hnfH3+uuIonLHbcIVvh/JhbLr1+JTn
+HldnwcW11sYqXxYCmqKImxPesceyyTeYU+kAprOMr0+TX9RkGXQcPH6gMtt5GUr4
+SvuRJhuJK4c5tFZz/unOE7duqOU1r27b1c5eY7N9PvyU6O4d4TCKLCJBhaGHw2F3
+DXBtK5WYVPYf8bfHPEx9cAvI82spsYOOiCpvWe6rBMlO5HrED7Srn3PoCh4m5A5F
+TehWazwH/M/lg9oB+Ge4ngAwuoI1l9djaToma/IFrcPG8vstMfAEXA==
+-----END RSA PRIVATE KEY-----
=== added file 'testsuite/network.all/clientreq.pem'
--- a/testsuite/network.all/clientreq.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/clientreq.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIB4zCCAUwCAQAwXjELMAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAw
+DgYDVQQHEwdGYWlyZmF4MREwDwYDVQQKEwhab3JrLm9yZzEXMBUGA1UEAxMOc2hl
+bGwuem9yay5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ31TJvrjaDZ
+TLA3oH9dzStZzYIKF1bFEZg22eOKY+7xJ0KiwIV8geqhp10CQm3VUQ6BhF/GFzAS
++Oqr1OTqdUHpTpwIa3j06u2fIvQTuacRYdRYRwEQk82hCvkg5rC/1WS4R1dpJ9Xk
+Flkmslm+qw34cEjlImSIoagEficeU/tBAgMBAAGgRTBDBgkqhkiG9w0BCQ4xNjA0
+MAwGA1UdEwQFMAMBAf8wJAYDVR0RBB0wG4IOc2hlbGwuem9yay5vcmeCCWxvY2Fs
+aG9zdDANBgkqhkiG9w0BAQUFAAOBgQCFzJzdj7688SbYCUvKmOPJ3nyKkW3TaGaM
+V7De1ha4nRPHSWmQNQZJdr7TtrCfELuYOZibLkYq8ancGkB3cvoZdZZrC5aTwCNN
+hENc/igGpiw2MY+MQGn3VdlOBIzaXfrltRbMgT1LXQ279GGwrr/H3Rj8FuYaiXxn
+IqEIgY9QnA==
+-----END CERTIFICATE REQUEST-----
=== added file 'testsuite/network.all/dh1024.pem'
--- a/testsuite/network.all/dh1024.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/dh1024.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,5 @@
+-----BEGIN DH PARAMETERS-----
+MIGHAoGBANmAnfkETuKHOCWaE+W+F3kM/e7z5A8hZb7OqwGMQrUOaBEAr4BWeZBn
+G/87hhwZgNP69/KUchm714qd/PpOspCaUJ20x6PcmKujpAgca/f19HGMBjRawQMk
+R9oaBwazuQT0l0rTTKmvpMEcrQQIcVWii3CZI56I56oqF8biGPD7AgEC
+-----END DH PARAMETERS-----
=== added file 'testsuite/network.all/dh512.pem'
--- a/testsuite/network.all/dh512.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/dh512.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,12 @@
+Diffie-Hellman-Parameters: (512 bit)
+ prime:
+ 00:b2:a7:c9:9c:4e:37:6c:f1:3c:36:84:8c:e4:b1:
+ 2a:18:08:00:ba:25:5c:ec:66:de:bc:90:c6:84:43:
+ 11:c9:82:f6:d5:ba:16:36:6c:48:8d:6e:f7:a2:51:
+ 21:77:1d:09:c1:3a:8b:7d:01:48:69:32:13:4e:cf:
+ c5:b7:14:6b:d3
+ generator: 5 (0x5)
+-----BEGIN DH PARAMETERS-----
+MEYCQQCyp8mcTjds8Tw2hIzksSoYCAC6JVzsZt68kMaEQxHJgvbVuhY2bEiNbvei
+USF3HQnBOot9AUhpMhNOz8W3FGvTAgEF
+-----END DH PARAMETERS-----
=== modified file 'testsuite/network.all/root.pem'
--- a/testsuite/network.all/root.pem 2009-06-15 03:22:47 +0000
+++ b/testsuite/network.all/root.pem 2009-07-20 20:57:44 +0000
@@ -1,14 +1,36 @@
-----BEGIN CERTIFICATE-----
-MIICIjCCAYugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJVUzET
-MBEGA1UEChMKUlRGTSwgSW5jLjEZMBcGA1UECxMQV2lkZ2V0cyBEaXZpc2lvbjEY
-MBYGA1UEAxMPVGVzdCBDQTIwMDEwNTE3MB4XDTAxMDUxNzE2MDExNFoXDTA2MTIy
-NTE2MDExNFowVzELMAkGA1UEBhMCVVMxEzARBgNVBAoTClJURk0sIEluYy4xGTAX
-BgNVBAsTEFdpZGdldHMgRGl2aXNpb24xGDAWBgNVBAMTD1Rlc3QgQ0EyMDAxMDUx
-NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAmkX40warmH0+lnwD9YjsJhRz
-ZX6qXadFry0y2trZ6gMs8Mv33IKPwOu8TE7V+3PESEtjI2wr8juV9OkbIPOm+td5
-M8+6vXyIW+JBo3ch99i0QMTf5/jTgsW+3IjV8yEdiGcZFp2NWKLRvZPq2VRbuF7R
-1pvgcaRuBJ0wGOohwnsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCUB8zMKIlX5io8
-TalbzH9Qke7BcvFAL+wp/5w1ToVsWkNrINSWKv6bl/jcqOD3aPhK7qhaeOU8ZWKL
-PoPPCnRl9Wo+1JtsOO3qIgJP79Bl9ooLGahixF2v/gea5qNISjQvwYllLSa//APP
-6kXHngO0RIRbiTBYHSkAzm6hDdsvVA==
+MIIC6DCCAlGgAwIBAgIJAJDs36FxozmwMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTA3
+WhcNMDkwODE4MDA0OTA3WjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQD
+EwdSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAFgPu30CYZUx0
+8OOXJUtXIPrE8vjAfWCGAoVJFd4k8XHZ0W2z17zmOqwqIk0NVZFHz0pnSUJr3OuM
+cPN6UbH7wZUIOYDFnLE7LeuujCQ5/U70jAJYbP4I7KpjG8D2if73uQ7zqeF5CY4F
+LZrsG+vdgA+YWFiJySJ8emrYXJImaQIDAQABo4G7MIG4MAwGA1UdEwQFMAMBAf8w
+HQYDVR0OBBYEFN3HUWAXPqGKbM/a5fRI9oIusFUkMIGIBgNVHSMEgYAwfoAU3cdR
+YBc+oYpsz9rl9Ej2gi6wVSShW6RZMFcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhW
+aXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8GA1UEChMIWm9yay5vcmcxEDAO
+BgNVBAMTB1Jvb3QgQ0GCCQCQ7N+hcaM5sDANBgkqhkiG9w0BAQUFAAOBgQAXkTab
+4Eypn+ZoGdSc4X+Z83Q+GFBjM500nplQGrVLL6xY5lEk7FEZkgWV9qm58iqvOYKd
+qLQEg63UIvd0ZPYsXRNlNBxtftNeZSDn0NYqEFcUtsum0EN/TrWP4Jw8JscJMvCV
+3oMXrwf15rg+/VBKxEkecGiiTMLXA/JIBnmuhA==
-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,2CE82BF6F4A856DA
+
+cYOVRt5vZxZx86ILTyVTXVjrczTLIewYnbgYJheKtERNejUZz1dRpZ+uwRmdD+f3
+e/wWV43n0el93IGi3e44OULvwo/yXqKdH+ZAX816jWIzpUMFjz6kyFuMOE+Lde72
+ptrEz82pyxDV/DUhBtIR2FnKA9axbwxKM1UgKEHHBwYFVvaEYIXQJ2dY/teXljVS
+BrnwHpGSmIj1ZmV6tOy44OMnZID0mnOnJCeTnI5CS+mEEpY3rNrNCoaaKk5Rflpj
+wPmIVEqRwXfsaYolpSyHyb3HplY11oVW1yXK5zDBFv3r9s6MDIBrzBuRu6u2AcpX
+6kvT0dKiVKmHqCLxxTr+3nJbZG6MdXgbt2al4XTgtFg9BJTxfmAVZoHSc6FoCpEV
+qjnBai9pZnoQmFdWM4l5061ZlSYibTledG1AyYMgubC8va5TFaL+y3cbunriJFN/
+PGRp49YaGwFr5IciecOFBRNmgwRUk31H/u+T+uAlTCHubmyOn3IIQOlP9UgNyjMs
+NDFHONtM8toWzDojKssTiTgJPLpHYORGO+CfDIqJlflHxADhWWlEHueZohb0N7vY
+kj14ygwH6Rg4/T1otlwn8s/DTYCTCUHlsqul5PJ6QYOsmMX1lkY+j3b96pRtdvnF
+Cd+u18w6z6j5dl2oaJz5koRcCbQtxJOZ2jBuyRClBwFW0t1RENsT2Z674zLy70ua
+NpEu9bpqdfjcNiBsVAVpX+mDmuxe0kfeaGkQ20b3zf7A3aIKFCn5nChc0G2UhE33
++LXTmYXTl8/L3nlEdDAiIjlVcPpToGFgpbxAl0gSp6RtWjyAFRmFDg==
+-----END RSA PRIVATE KEY-----
=== added file 'testsuite/network.all/rootcert.pem'
--- a/testsuite/network.all/rootcert.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/rootcert.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6DCCAlGgAwIBAgIJAJDs36FxozmwMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTA3
+WhcNMDkwODE4MDA0OTA3WjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQD
+EwdSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAFgPu30CYZUx0
+8OOXJUtXIPrE8vjAfWCGAoVJFd4k8XHZ0W2z17zmOqwqIk0NVZFHz0pnSUJr3OuM
+cPN6UbH7wZUIOYDFnLE7LeuujCQ5/U70jAJYbP4I7KpjG8D2if73uQ7zqeF5CY4F
+LZrsG+vdgA+YWFiJySJ8emrYXJImaQIDAQABo4G7MIG4MAwGA1UdEwQFMAMBAf8w
+HQYDVR0OBBYEFN3HUWAXPqGKbM/a5fRI9oIusFUkMIGIBgNVHSMEgYAwfoAU3cdR
+YBc+oYpsz9rl9Ej2gi6wVSShW6RZMFcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhW
+aXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8GA1UEChMIWm9yay5vcmcxEDAO
+BgNVBAMTB1Jvb3QgQ0GCCQCQ7N+hcaM5sDANBgkqhkiG9w0BAQUFAAOBgQAXkTab
+4Eypn+ZoGdSc4X+Z83Q+GFBjM500nplQGrVLL6xY5lEk7FEZkgWV9qm58iqvOYKd
+qLQEg63UIvd0ZPYsXRNlNBxtftNeZSDn0NYqEFcUtsum0EN/TrWP4Jw8JscJMvCV
+3oMXrwf15rg+/VBKxEkecGiiTMLXA/JIBnmuhA==
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/rootkey.pem'
--- a/testsuite/network.all/rootkey.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/rootkey.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,2CE82BF6F4A856DA
+
+cYOVRt5vZxZx86ILTyVTXVjrczTLIewYnbgYJheKtERNejUZz1dRpZ+uwRmdD+f3
+e/wWV43n0el93IGi3e44OULvwo/yXqKdH+ZAX816jWIzpUMFjz6kyFuMOE+Lde72
+ptrEz82pyxDV/DUhBtIR2FnKA9axbwxKM1UgKEHHBwYFVvaEYIXQJ2dY/teXljVS
+BrnwHpGSmIj1ZmV6tOy44OMnZID0mnOnJCeTnI5CS+mEEpY3rNrNCoaaKk5Rflpj
+wPmIVEqRwXfsaYolpSyHyb3HplY11oVW1yXK5zDBFv3r9s6MDIBrzBuRu6u2AcpX
+6kvT0dKiVKmHqCLxxTr+3nJbZG6MdXgbt2al4XTgtFg9BJTxfmAVZoHSc6FoCpEV
+qjnBai9pZnoQmFdWM4l5061ZlSYibTledG1AyYMgubC8va5TFaL+y3cbunriJFN/
+PGRp49YaGwFr5IciecOFBRNmgwRUk31H/u+T+uAlTCHubmyOn3IIQOlP9UgNyjMs
+NDFHONtM8toWzDojKssTiTgJPLpHYORGO+CfDIqJlflHxADhWWlEHueZohb0N7vY
+kj14ygwH6Rg4/T1otlwn8s/DTYCTCUHlsqul5PJ6QYOsmMX1lkY+j3b96pRtdvnF
+Cd+u18w6z6j5dl2oaJz5koRcCbQtxJOZ2jBuyRClBwFW0t1RENsT2Z674zLy70ua
+NpEu9bpqdfjcNiBsVAVpX+mDmuxe0kfeaGkQ20b3zf7A3aIKFCn5nChc0G2UhE33
++LXTmYXTl8/L3nlEdDAiIjlVcPpToGFgpbxAl0gSp6RtWjyAFRmFDg==
+-----END RSA PRIVATE KEY-----
=== added file 'testsuite/network.all/rootreq.pem'
--- a/testsuite/network.all/rootreq.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/rootreq.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBlzCCAQACAQAwVzELMAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAw
+DgYDVQQHEwdGYWlyZmF4MREwDwYDVQQKEwhab3JrLm9yZzEQMA4GA1UEAxMHUm9v
+dCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwBYD7t9AmGVMdPDjlyVL
+VyD6xPL4wH1ghgKFSRXeJPFx2dFts9e85jqsKiJNDVWRR89KZ0lCa9zrjHDzelGx
++8GVCDmAxZyxOy3rrowkOf1O9IwCWGz+COyqYxvA9on+97kO86nheQmOBS2a7Bvr
+3YAPmFhYickifHpq2FySJmkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAHscePXG
+C9I80zHDbVH3m4JHavb9U5vXMJkAO3QMnxhsaw1jxvFNUyvcanquW//tlsHztMsF
+wPOwrrA0kncU24GW+Lmja6/w/Bp74k5grdVk5z96GIv3EF4IfuvZHwWMAO8RUOc/
+MaKZCF6ANQ5ZxLIWMacfPw3q7upGgMVf7BWQ
+-----END CERTIFICATE REQUEST-----
=== added file 'testsuite/network.all/server.pem'
--- a/testsuite/network.all/server.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/server.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,71 @@
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIJAIWmY2JKhR9XMA0GCSqGSIb3DQEBBQUAMHMxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxGDAWBgNVBAsTD1NlcnZlciBEaXZpc2lvbjESMBAGA1UE
+AxMJU2VydmVyIENBMB4XDTA5MDcxOTAwNDkyMloXDTA5MDgxODAwNDkyMlowXjEL
+MAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAwDgYDVQQHEwdGYWlyZmF4
+MREwDwYDVQQKEwhab3JrLm9yZzEXMBUGA1UEAxMOc3BsYXQuem9yay5vcmcwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2nJuwDMN292vCIxVmfBZyFGbMfQTI8
+xpyh1KUMauyDwlA3NiF7QX/uf8SLC/43J1xOVyiEqq6Nbi8eOM7l5u2lGeMmu8Tp
+JQ+4OwE1Be1xb4q/0LfL8TO9/r74+dML8dv+nggHzsPjAcot4tH/ixYs5E2Blc0P
+yq/xnU/wj12xAgMBAAGjMzAxMAkGA1UdEwQCMAAwJAYDVR0RBB0wG4IOc3BsYXQu
+em9yay5vcmeCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQUFAAOBgQBAHZZcgHORBPM+
+F9hD1f6bhI3/XnEeQiTgQ/RT/q4kNlniCKPsSKLramPjIstGygrax8JmrunuHkq6
+QwfA/aEomFdiQf0MhYOGfE0IWWhRFk99txPU4sg10r/cP3qr/M6FCeCFmqvVZ2Lk
+4zI5ClRFDoipWOModXqhg09osNV3Sw==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D394ECCBCC2646B4
+
+92ajyevs79g9d0VGf1GgyVljM2JrpzkMeCVPeRfJWfeOqJ/MbGXD/+uZlJem/ZWd
+uYdWXy7WijpyO8/WZ4rN/H30qwNxa4uCxRrUvz7esgzTqpJqQ1VnbB5CFKzVx30P
+rEFjBwyEkPxXkyPTzkaNTFRz3i03itF2QmaYeJ/V99k/Ac7M+QQ+ARuT0c3ZTmCK
+52jiHjYs/0tL7soxN6O5cDt/zSeSa5eaeVTN9YDPQseua3SpdtZwasrGbf7qQw58
+um4BOvF4MImdeQRd7jdCkL8GKX6buzLZBgzNa4rqT9pr0UyR9vri8pYCb5Ibf6Y+
+IgY3yUJBgvWU5lumObRsTZOd2lpsB7sLmgYcF2gi1AqBi7iljs48zzUaHpd54/NS
+5BAUKd0TDV872iy/jUPa91Qm17hVTTkqXwAI2g77pv5conMDnjEWCcGI+VAFj3JO
++zbLrCT96djp6YVU7nzO069iwYgPlqBi3XdWT2xLbGBhlGm4DCsa/ytHKc7RQSOh
+AC69Z2zTdHK8tVB1jHmHDt0K2hHjV8JNqxJWVt1FnKaZQ1RjpSUt7vigb/TUgslu
+S8ucbREm/fybTIYpSM7KxW6YMduSPAELr3Zek+OtQ24CmH27LlLJsb8+c9mSUrG9
+RYp5BhJYOsJKNMSMjl3vSAjLnKnrfJUI6sNhcDjhd+qOu0DRjg57qB7wiFFSkS+v
+CmwFXKwMkul6w6l4lDq1FAGiwpsjO023ieczsz9hDYcpW5pDn5CO0ZMf4pg5FdJh
+wwNwJxSbKy5u4zPzS62PBI9aKiMg/EUvM0BMHRb4pdQjrJJx8YYLEg==
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAm2gAwIBAgIJAJx5ndQ9slTjMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTEz
+WhcNMDkwODE4MDA0OTEzWjBzMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRgwFgYDVQQL
+Ew9TZXJ2ZXIgRGl2aXNpb24xEjAQBgNVBAMTCVNlcnZlciBDQTCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEAxURqB1NFaTZrd3eZ0Mtq7w3Up2el2/G2wKqrD9L6
+mKtMYmOl4i2XTUjUzp4EGxwFBDcDbCa3AGautKTlmn6XnQulOrSPfffuJoE1ks6Y
+SJphck8URK1AtQr5azg5rMhhKsNdNGdhjdNmUsMTquZQpYMp3Ltff4096r7N+7Gn
+N0kCAwEAAaOBuzCBuDAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBSGT3+3ie7EKibW
+afgzoBpToBDoeDCBiAYDVR0jBIGAMH6AFN3HUWAXPqGKbM/a5fRI9oIusFUkoVuk
+WTBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWExEDAOBgNVBAcTB0Zh
+aXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQDEwdSb290IENBggkAkOzf
+oXGjObAwDQYJKoZIhvcNAQEFBQADgYEAE21Uhz+0hZiSWfkpt7qakpQ6Xk/VSerp
+Bq+fiUyh7SsuAZjlnabNLXvKXQS4YEMA0+P3sgpuYEvO8yE/e5N8212o8EnWmMyE
+e6RA2mF41d5ONUoRBEyKdDdsLEMvw585m38RgtMQRoOiZozpiWaqYuOh3haUhf1i
+5tXoMyXlPrs=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC6DCCAlGgAwIBAgIJAJDs36FxozmwMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTA3
+WhcNMDkwODE4MDA0OTA3WjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQD
+EwdSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAFgPu30CYZUx0
+8OOXJUtXIPrE8vjAfWCGAoVJFd4k8XHZ0W2z17zmOqwqIk0NVZFHz0pnSUJr3OuM
+cPN6UbH7wZUIOYDFnLE7LeuujCQ5/U70jAJYbP4I7KpjG8D2if73uQ7zqeF5CY4F
+LZrsG+vdgA+YWFiJySJ8emrYXJImaQIDAQABo4G7MIG4MAwGA1UdEwQFMAMBAf8w
+HQYDVR0OBBYEFN3HUWAXPqGKbM/a5fRI9oIusFUkMIGIBgNVHSMEgYAwfoAU3cdR
+YBc+oYpsz9rl9Ej2gi6wVSShW6RZMFcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhW
+aXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8GA1UEChMIWm9yay5vcmcxEDAO
+BgNVBAMTB1Jvb3QgQ0GCCQCQ7N+hcaM5sDANBgkqhkiG9w0BAQUFAAOBgQAXkTab
+4Eypn+ZoGdSc4X+Z83Q+GFBjM500nplQGrVLL6xY5lEk7FEZkgWV9qm58iqvOYKd
+qLQEg63UIvd0ZPYsXRNlNBxtftNeZSDn0NYqEFcUtsum0EN/TrWP4Jw8JscJMvCV
+3oMXrwf15rg+/VBKxEkecGiiTMLXA/JIBnmuhA==
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/serverCA.pem'
--- a/testsuite/network.all/serverCA.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverCA.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,55 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAm2gAwIBAgIJAJx5ndQ9slTjMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTEz
+WhcNMDkwODE4MDA0OTEzWjBzMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRgwFgYDVQQL
+Ew9TZXJ2ZXIgRGl2aXNpb24xEjAQBgNVBAMTCVNlcnZlciBDQTCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEAxURqB1NFaTZrd3eZ0Mtq7w3Up2el2/G2wKqrD9L6
+mKtMYmOl4i2XTUjUzp4EGxwFBDcDbCa3AGautKTlmn6XnQulOrSPfffuJoE1ks6Y
+SJphck8URK1AtQr5azg5rMhhKsNdNGdhjdNmUsMTquZQpYMp3Ltff4096r7N+7Gn
+N0kCAwEAAaOBuzCBuDAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBSGT3+3ie7EKibW
+afgzoBpToBDoeDCBiAYDVR0jBIGAMH6AFN3HUWAXPqGKbM/a5fRI9oIusFUkoVuk
+WTBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWExEDAOBgNVBAcTB0Zh
+aXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQDEwdSb290IENBggkAkOzf
+oXGjObAwDQYJKoZIhvcNAQEFBQADgYEAE21Uhz+0hZiSWfkpt7qakpQ6Xk/VSerp
+Bq+fiUyh7SsuAZjlnabNLXvKXQS4YEMA0+P3sgpuYEvO8yE/e5N8212o8EnWmMyE
+e6RA2mF41d5ONUoRBEyKdDdsLEMvw585m38RgtMQRoOiZozpiWaqYuOh3haUhf1i
+5tXoMyXlPrs=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,0BBAB05FE3F17B11
+
+UfUpHfXDF8xsAvdKAUHStGT+2OPofHHrZsmW4PbODq6V160sDTLCnzX4Y7UnLQkF
+FlJwyebY39osUSyTOsdaDpZdzabs8ZQtXrkoTHcmCuiJcLl833ZWeWCsFbRP+2M9
+RnarcrcPYguvDWU7XCSWFGS2XOdtCYLdlIJkfG+UcTm56d3Lgj56xYJmT3XR4W/2
+gEoskF1vAsEUTxgjNJUiKxzCNr9QAs0cznKs2jjD7uuQJvOFWc58SmmMqttoap/U
+DwBwGAvW+2GWfGdHhBjaZa61scLTCwy7NTZoi/g5iy+WIv7wVfVNgdYzk1W12ZXf
+jMGR0gP3yFX5bp9M/zsf2Xn1/tCjz2clQK01u5mwxIzA7WZ3b36LaS7/jvs/kRKz
+KNSHsPEG7x+lYIhgzQsQevOgv/9pL6ffUwDXVBb6fdELw/Fzrqv11T6DM4jasMsb
+Mbk4jVftUOggWgrNX8JGYnscq+646lmdlsh67mTHy42KhKefkVCO3fJ1jI3C2fi+
+hMoBSQ+ft457NBhUk4oOqy4O/O3DwVUSs3Hqi9ohibdMYBG3cKiHd5EFqFZp2Kow
+WMCWiISHWe9A43jHbUq2S/T0PQTVRt9wICOLcZ0ZZG4s1anw9J8RZzM/RB4PyqBE
+pRTrrigxrWyotzgxit+kYrgPKJCuxvD5JdFB2zxdxq+9kQAl6zjGN+UgfZub9fIC
+qbAYFv/YBapfOU/aNbnfOAD7u+ODK5R39JGSAZ2PRJal0s9MfhGGymTIdoQMCyY1
+HZhw0UoceEAlonwKqzk8IY3yxa4pxWbPEyNIPREzrwlj03SFq773mw==
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIC6DCCAlGgAwIBAgIJAJDs36FxozmwMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTA3
+WhcNMDkwODE4MDA0OTA3WjBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQD
+EwdSb290IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAFgPu30CYZUx0
+8OOXJUtXIPrE8vjAfWCGAoVJFd4k8XHZ0W2z17zmOqwqIk0NVZFHz0pnSUJr3OuM
+cPN6UbH7wZUIOYDFnLE7LeuujCQ5/U70jAJYbP4I7KpjG8D2if73uQ7zqeF5CY4F
+LZrsG+vdgA+YWFiJySJ8emrYXJImaQIDAQABo4G7MIG4MAwGA1UdEwQFMAMBAf8w
+HQYDVR0OBBYEFN3HUWAXPqGKbM/a5fRI9oIusFUkMIGIBgNVHSMEgYAwfoAU3cdR
+YBc+oYpsz9rl9Ej2gi6wVSShW6RZMFcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhW
+aXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8GA1UEChMIWm9yay5vcmcxEDAO
+BgNVBAMTB1Jvb3QgQ0GCCQCQ7N+hcaM5sDANBgkqhkiG9w0BAQUFAAOBgQAXkTab
+4Eypn+ZoGdSc4X+Z83Q+GFBjM500nplQGrVLL6xY5lEk7FEZkgWV9qm58iqvOYKd
+qLQEg63UIvd0ZPYsXRNlNBxtftNeZSDn0NYqEFcUtsum0EN/TrWP4Jw8JscJMvCV
+3oMXrwf15rg+/VBKxEkecGiiTMLXA/JIBnmuhA==
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/serverCAcert.pem'
--- a/testsuite/network.all/serverCAcert.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverCAcert.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDBDCCAm2gAwIBAgIJAJx5ndQ9slTjMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxEDAOBgNVBAMTB1Jvb3QgQ0EwHhcNMDkwNzE5MDA0OTEz
+WhcNMDkwODE4MDA0OTEzWjBzMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2lu
+aWExEDAOBgNVBAcTB0ZhaXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRgwFgYDVQQL
+Ew9TZXJ2ZXIgRGl2aXNpb24xEjAQBgNVBAMTCVNlcnZlciBDQTCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEAxURqB1NFaTZrd3eZ0Mtq7w3Up2el2/G2wKqrD9L6
+mKtMYmOl4i2XTUjUzp4EGxwFBDcDbCa3AGautKTlmn6XnQulOrSPfffuJoE1ks6Y
+SJphck8URK1AtQr5azg5rMhhKsNdNGdhjdNmUsMTquZQpYMp3Ltff4096r7N+7Gn
+N0kCAwEAAaOBuzCBuDAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBSGT3+3ie7EKibW
+afgzoBpToBDoeDCBiAYDVR0jBIGAMH6AFN3HUWAXPqGKbM/a5fRI9oIusFUkoVuk
+WTBXMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWExEDAOBgNVBAcTB0Zh
+aXJmYXgxETAPBgNVBAoTCFpvcmsub3JnMRAwDgYDVQQDEwdSb290IENBggkAkOzf
+oXGjObAwDQYJKoZIhvcNAQEFBQADgYEAE21Uhz+0hZiSWfkpt7qakpQ6Xk/VSerp
+Bq+fiUyh7SsuAZjlnabNLXvKXQS4YEMA0+P3sgpuYEvO8yE/e5N8212o8EnWmMyE
+e6RA2mF41d5ONUoRBEyKdDdsLEMvw585m38RgtMQRoOiZozpiWaqYuOh3haUhf1i
+5tXoMyXlPrs=
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/serverCAkey.pem'
--- a/testsuite/network.all/serverCAkey.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverCAkey.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,0BBAB05FE3F17B11
+
+UfUpHfXDF8xsAvdKAUHStGT+2OPofHHrZsmW4PbODq6V160sDTLCnzX4Y7UnLQkF
+FlJwyebY39osUSyTOsdaDpZdzabs8ZQtXrkoTHcmCuiJcLl833ZWeWCsFbRP+2M9
+RnarcrcPYguvDWU7XCSWFGS2XOdtCYLdlIJkfG+UcTm56d3Lgj56xYJmT3XR4W/2
+gEoskF1vAsEUTxgjNJUiKxzCNr9QAs0cznKs2jjD7uuQJvOFWc58SmmMqttoap/U
+DwBwGAvW+2GWfGdHhBjaZa61scLTCwy7NTZoi/g5iy+WIv7wVfVNgdYzk1W12ZXf
+jMGR0gP3yFX5bp9M/zsf2Xn1/tCjz2clQK01u5mwxIzA7WZ3b36LaS7/jvs/kRKz
+KNSHsPEG7x+lYIhgzQsQevOgv/9pL6ffUwDXVBb6fdELw/Fzrqv11T6DM4jasMsb
+Mbk4jVftUOggWgrNX8JGYnscq+646lmdlsh67mTHy42KhKefkVCO3fJ1jI3C2fi+
+hMoBSQ+ft457NBhUk4oOqy4O/O3DwVUSs3Hqi9ohibdMYBG3cKiHd5EFqFZp2Kow
+WMCWiISHWe9A43jHbUq2S/T0PQTVRt9wICOLcZ0ZZG4s1anw9J8RZzM/RB4PyqBE
+pRTrrigxrWyotzgxit+kYrgPKJCuxvD5JdFB2zxdxq+9kQAl6zjGN+UgfZub9fIC
+qbAYFv/YBapfOU/aNbnfOAD7u+ODK5R39JGSAZ2PRJal0s9MfhGGymTIdoQMCyY1
+HZhw0UoceEAlonwKqzk8IY3yxa4pxWbPEyNIPREzrwlj03SFq773mw==
+-----END RSA PRIVATE KEY-----
=== added file 'testsuite/network.all/serverCAreq.pem'
--- a/testsuite/network.all/serverCAreq.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverCAreq.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBszCCARwCAQAwczELMAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAw
+DgYDVQQHEwdGYWlyZmF4MREwDwYDVQQKEwhab3JrLm9yZzEYMBYGA1UECxMPU2Vy
+dmVyIERpdmlzaW9uMRIwEAYDVQQDEwlTZXJ2ZXIgQ0EwgZ8wDQYJKoZIhvcNAQEB
+BQADgY0AMIGJAoGBAMVEagdTRWk2a3d3mdDLau8N1KdnpdvxtsCqqw/S+pirTGJj
+peItl01I1M6eBBscBQQ3A2wmtwBmrrSk5Zp+l50LpTq0j3337iaBNZLOmEiaYXJP
+FEStQLUK+Ws4OazIYSrDXTRnYY3TZlLDE6rmUKWDKdy7X3+NPeq+zfuxpzdJAgMB
+AAGgADANBgkqhkiG9w0BAQUFAAOBgQBxwXmA+SAEmlUTZm21z/vDDa5gsHg5B39Q
+RbG0TL8APjR+3FlqIWDDOV0SgXLeMxFdjeLDH+b9/B+6WbCGbBvbrQ79BhqqlifD
+eYIdMHe+o6tMFz3mTca7l7pqvZzpPvVpVEpqjuQSE4NhA3ul/i8jaTmlD5AkcGKX
+SDyvcNusKA==
+-----END CERTIFICATE REQUEST-----
=== added file 'testsuite/network.all/servercert.pem'
--- a/testsuite/network.all/servercert.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/servercert.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIJAIWmY2JKhR9XMA0GCSqGSIb3DQEBBQUAMHMxCzAJBgNV
+BAYTAlVTMREwDwYDVQQIEwhWaXJnaW5pYTEQMA4GA1UEBxMHRmFpcmZheDERMA8G
+A1UEChMIWm9yay5vcmcxGDAWBgNVBAsTD1NlcnZlciBEaXZpc2lvbjESMBAGA1UE
+AxMJU2VydmVyIENBMB4XDTA5MDcxOTAwNDkyMloXDTA5MDgxODAwNDkyMlowXjEL
+MAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAwDgYDVQQHEwdGYWlyZmF4
+MREwDwYDVQQKEwhab3JrLm9yZzEXMBUGA1UEAxMOc3BsYXQuem9yay5vcmcwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2nJuwDMN292vCIxVmfBZyFGbMfQTI8
+xpyh1KUMauyDwlA3NiF7QX/uf8SLC/43J1xOVyiEqq6Nbi8eOM7l5u2lGeMmu8Tp
+JQ+4OwE1Be1xb4q/0LfL8TO9/r74+dML8dv+nggHzsPjAcot4tH/ixYs5E2Blc0P
+yq/xnU/wj12xAgMBAAGjMzAxMAkGA1UdEwQCMAAwJAYDVR0RBB0wG4IOc3BsYXQu
+em9yay5vcmeCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQUFAAOBgQBAHZZcgHORBPM+
+F9hD1f6bhI3/XnEeQiTgQ/RT/q4kNlniCKPsSKLramPjIstGygrax8JmrunuHkq6
+QwfA/aEomFdiQf0MhYOGfE0IWWhRFk99txPU4sg10r/cP3qr/M6FCeCFmqvVZ2Lk
+4zI5ClRFDoipWOModXqhg09osNV3Sw==
+-----END CERTIFICATE-----
=== added file 'testsuite/network.all/serverkey.pem'
--- a/testsuite/network.all/serverkey.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverkey.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D394ECCBCC2646B4
+
+92ajyevs79g9d0VGf1GgyVljM2JrpzkMeCVPeRfJWfeOqJ/MbGXD/+uZlJem/ZWd
+uYdWXy7WijpyO8/WZ4rN/H30qwNxa4uCxRrUvz7esgzTqpJqQ1VnbB5CFKzVx30P
+rEFjBwyEkPxXkyPTzkaNTFRz3i03itF2QmaYeJ/V99k/Ac7M+QQ+ARuT0c3ZTmCK
+52jiHjYs/0tL7soxN6O5cDt/zSeSa5eaeVTN9YDPQseua3SpdtZwasrGbf7qQw58
+um4BOvF4MImdeQRd7jdCkL8GKX6buzLZBgzNa4rqT9pr0UyR9vri8pYCb5Ibf6Y+
+IgY3yUJBgvWU5lumObRsTZOd2lpsB7sLmgYcF2gi1AqBi7iljs48zzUaHpd54/NS
+5BAUKd0TDV872iy/jUPa91Qm17hVTTkqXwAI2g77pv5conMDnjEWCcGI+VAFj3JO
++zbLrCT96djp6YVU7nzO069iwYgPlqBi3XdWT2xLbGBhlGm4DCsa/ytHKc7RQSOh
+AC69Z2zTdHK8tVB1jHmHDt0K2hHjV8JNqxJWVt1FnKaZQ1RjpSUt7vigb/TUgslu
+S8ucbREm/fybTIYpSM7KxW6YMduSPAELr3Zek+OtQ24CmH27LlLJsb8+c9mSUrG9
+RYp5BhJYOsJKNMSMjl3vSAjLnKnrfJUI6sNhcDjhd+qOu0DRjg57qB7wiFFSkS+v
+CmwFXKwMkul6w6l4lDq1FAGiwpsjO023ieczsz9hDYcpW5pDn5CO0ZMf4pg5FdJh
+wwNwJxSbKy5u4zPzS62PBI9aKiMg/EUvM0BMHRb4pdQjrJJx8YYLEg==
+-----END RSA PRIVATE KEY-----
=== added file 'testsuite/network.all/serverreq.pem'
--- a/testsuite/network.all/serverreq.pem 1970-01-01 00:00:00 +0000
+++ b/testsuite/network.all/serverreq.pem 2009-07-20 20:57:44 +0000
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIB4zCCAUwCAQAwXjELMAkGA1UEBhMCVVMxETAPBgNVBAgTCFZpcmdpbmlhMRAw
+DgYDVQQHEwdGYWlyZmF4MREwDwYDVQQKEwhab3JrLm9yZzEXMBUGA1UEAxMOc3Bs
+YXQuem9yay5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2nJuwDMN29
+2vCIxVmfBZyFGbMfQTI8xpyh1KUMauyDwlA3NiF7QX/uf8SLC/43J1xOVyiEqq6N
+bi8eOM7l5u2lGeMmu8TpJQ+4OwE1Be1xb4q/0LfL8TO9/r74+dML8dv+nggHzsPj
+Acot4tH/ixYs5E2Blc0Pyq/xnU/wj12xAgMBAAGgRTBDBgkqhkiG9w0BCQ4xNjA0
+MAwGA1UdEwQFMAMBAf8wJAYDVR0RBB0wG4IOc3BsYXQuem9yay5vcmeCCWxvY2Fs
+aG9zdDANBgkqhkiG9w0BAQUFAAOBgQBAfIwvF7Ee9Vfq3qt2o9kB0SRASiZrXjZV
+L3qnY+JTSOxlJ0DuNJdc3K34usovl/eS0Oqb7CnzIVyyHn4itAumbera+WavfZV4
+LNl6cPf8zVt5muIa4ARBmuxJcki8UbYMpXvMTdPpRLQUgzQC037Hs+AuqEh8jj49
+yXV6bzsIgQ==
+-----END CERTIFICATE REQUEST-----
=== modified file 'testsuite/network.all/test_ssh.cpp'
--- a/testsuite/network.all/test_ssh.cpp 2009-07-13 21:22:03 +0000
+++ b/testsuite/network.all/test_ssh.cpp 2009-07-20 20:57:44 +0000
@@ -44,7 +44,7 @@
#include "sol.h"
#include "arg_parser.h"
#include "sshclient.h"
-#include "sslclient.h"
+#include "sshserver.h"
using namespace amf;
using namespace gnash;
@@ -57,6 +57,8 @@
static string infile;
static void test_client();
+static void test_server();
+static void test_channels();
static SSHClient client;
static Network net;
@@ -65,6 +67,8 @@
int
main(int argc, char *argv[])
{
+ bool servermode = false;
+
const Arg_parser::Option opts[] =
{
{ 'h', "help", Arg_parser::no },
@@ -78,6 +82,7 @@
{ 'f', "sftp", Arg_parser::no },
{ 'a', "raw", Arg_parser::no },
{ 'n', "netdebug", Arg_parser::no },
+ { 'c', "daemon", Arg_parser::no },
};
Arg_parser parser(argc, argv, opts);
@@ -140,6 +145,10 @@
case 'n':
net.toggleDebug(true);
break;
+ case 'c':
+ servermode = true;
+ log_debug(_("Enabling SSH server mode"));
+ break;
case 0:
infile = parser.argument(i);
log_debug(_("Input file for testing the SSH connection is:
%s"), infile);
@@ -153,7 +162,13 @@
}
}
- test_client();
+ if (servermode) {
+ test_server();
+ } else {
+ test_client();
+ }
+
+ test_channels();
}
static void test_client()
@@ -173,57 +188,20 @@
giveup = true;
}
- // I haven't seen a password with the first character set to
- // zero ever. so we assume it got set correctly by the callback.
- if (client.getPassword()[0] != 0) {
- runtest.pass("Password was set for SSH connection");
- } else {
- if (giveup) {
- runtest.unresolved("Password wasn't set for SSH connection");
- } else {
- runtest.fail("Password wasn't set for SSH connection");
- }
- }
-
-#if 0
- if (giveup) {
- runtest.unresolved("Cert didn't match hostfor SSH connection");
- } else {
- if (client.checkCert()) {
- runtest.xpass("Cert matched host for SSH connection");
- } else {
- runtest.xfail("Cert didn't match host for SSH connection");
- }
- }
-
- HTTP http;
-
- if (giveup) {
- runtest.unresolved("Couldn't write to SSH connection");
- } else {
- amf::Buffer &request = http.formatRequest("/crossdomain.xml",
HTTP::HTTP_GET);
-
- if ((ret = client.sshWrite(request)) == request.allocated()) {
- runtest.pass("Wrote bytes to SSH connection");
- } else {
- runtest.fail("Couldn't write to SSH connection.");
- }
- }
-#endif
-
-#if 0
- // This blocks forever unless data is received.
- if (giveup) {
- runtest.unresolved("Couldn't read bytes from SSH connection");
- } else {
- amf::Buffer buf;
- if ((ret = client.sshRead(buf)) > 0) {
- runtest.pass("Read bytes from SSH connection");
- } else {
- runtest.fail("Couldn't read bytes to SSH connection.");
- }
- }
-#endif
+ if (client.openChannel()) {
+ runtest.pass("Opened a new channel");
+ } else {
+ runtest.fail("Couldn't open a new channel");
+ giveup = true;
+ }
+
+ client.closeChannel();
+ if (client.getChannel() == 0) {
+ runtest.pass("Closed the current channel");
+ } else {
+ runtest.fail("Couldn't close the current channel");
+ giveup = true;
+ }
if (giveup) {
runtest.unresolved("Couldn't shutdown SSH connection");
@@ -237,6 +215,19 @@
}
+static void test_server()
+{
+
+ SSHServer server;
+
+
+}
+
+static void test_channels()
+{
+
+}
+
static void
usage (void)
{
@@ -253,6 +244,7 @@
cerr << "-f\tUse SFTP for transport" << endl;
cerr << "-a\tUse RAW for transport" << endl;
cerr << "-n\tEnable network debug" << endl << endl;
+ cerr << "-c\tEnable SSH Server" << endl << endl;
cerr << "Libssh version is: " << ssh_version(0) << endl;
exit (-1);
=== modified file 'testsuite/network.all/test_ssl.cpp'
--- a/testsuite/network.all/test_ssl.cpp 2009-07-13 21:21:10 +0000
+++ b/testsuite/network.all/test_ssl.cpp 2009-07-20 20:57:44 +0000
@@ -45,6 +45,7 @@
#include "sol.h"
#include "arg_parser.h"
#include "sslclient.h"
+#include "sslserver.h"
using namespace amf;
using namespace gnash;
@@ -57,7 +58,10 @@
static string infile;
static void test_client();
+static void test_server();
+
static SSLClient client;
+SSLServer server;
static Network net;
LogFile& dbglogfile = LogFile::getDefaultInstance();
@@ -78,6 +82,7 @@
{ 'a', "calist", Arg_parser::yes },
{ 'r', "rootpath", Arg_parser::yes },
{ 'n', "netdebug", Arg_parser::no },
+ { 'e', "dsemon", Arg_parser::no },
};
Arg_parser parser(argc, argv, opts);
@@ -86,6 +91,8 @@
exit(EXIT_FAILURE);
}
+ bool servermode = false;
+
for( int i = 0; i < parser.arguments(); ++i ) {
const int code = parser.code(i);
try {
@@ -129,6 +136,7 @@
break;
case 'r':
client.setRootPath(parser.argument(i));
+ server.setRootPath(parser.argument(i));
log_debug(_("Root path for SSL pem files is: %s"),
client.getRootPath());
break;
@@ -140,6 +148,10 @@
case 'n':
net.toggleDebug(true);
break;
+ case 'e':
+ servermode = true;
+ log_debug(_("Enabling SSL server mode"));
+ break;
case 0:
infile = parser.argument(i);
log_debug(_("Input file for testing the SSL connection is:
%s"), infile);
@@ -153,7 +165,11 @@
}
}
- test_client();
+ if (servermode) {
+ test_server();
+ } else {
+ test_client();
+ }
}
static void test_client()
@@ -161,12 +177,14 @@
size_t ret;
bool giveup = false;
+#if 0
// Make a tcp/ip connect to the server
- if (net.createClient(client.getHostname(), SSL_PORT) == false) {
+ if (net.createClient(client.getHostname()) == false) {
log_error("Can't connect to server %s", client.getHostname());
}
+#endif
- if (client.sslConnect(net.getFileFd())) {
+ if (client.sslConnect(net.getFileFd(), client.getHostname(),
net.getPort())) {
runtest.pass("Connected to SSL server");
} else {
runtest.fail("Couldn't connect to SSL server");
@@ -189,9 +207,9 @@
runtest.unresolved("Cert didn't match hostfor SSL connection");
} else {
if (client.checkCert()) {
- runtest.xpass("Cert matched host for SSL connection");
+ runtest.pass("Cert matched host for SSL connection");
} else {
- runtest.xfail("Cert didn't match host for SSL connection");
+ runtest.fail("Cert didn't match host for SSL connection");
}
}
@@ -235,6 +253,19 @@
}
+static void test_server()
+{
+ log_debug("Starting SSL Server");
+
+ // The por is set by the command line arguments
+ net.createServer();
+
+ net.newConnection();
+
+ server.sslAccept(net.getFileFd());
+
+}
+
static void
usage (void)
{
@@ -250,6 +281,7 @@
cerr << "-w\tPassword" << endl;
cerr << "-a\tCA List" << endl;
cerr << "-r\tRoot path" << endl;
+ cerr << "-e\tServer mode" << endl;
exit (-1);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r11289: merge from branch.,
rob <=