-rw-r--r-- | noncore/comm/keypebble/d3des.c | 7 | ||||
-rw-r--r-- | noncore/comm/keypebble/krfbcanvas.cpp | 8 | ||||
-rw-r--r-- | noncore/comm/keypebble/kvnc.cpp | 2 | ||||
-rw-r--r-- | noncore/comm/keypebble/vncauth.c | 2 |
4 files changed, 7 insertions, 12 deletions
diff --git a/noncore/comm/keypebble/d3des.c b/noncore/comm/keypebble/d3des.c index b0f065e..7f50da4 100644 --- a/noncore/comm/keypebble/d3des.c +++ b/noncore/comm/keypebble/d3des.c | |||
@@ -1,90 +1,83 @@ | |||
1 | /* | 1 | /* |
2 | * This is D3DES (V5.09) by Richard Outerbridge with the double and | 2 | * This is D3DES (V5.09) by Richard Outerbridge with the double and |
3 | * triple-length support removed for use in VNC. Also the bytebit[] array | 3 | * triple-length support removed for use in VNC. Also the bytebit[] array |
4 | * has been reversed so that the most significant bit in each byte of the | 4 | * has been reversed so that the most significant bit in each byte of the |
5 | * key is ignored, not the least significant. | 5 | * key is ignored, not the least significant. |
6 | * | 6 | * |
7 | * These changes are Copyright (C) 1998 Olivetti & Oracle Research Laboratory | 7 | * These changes are Copyright (C) 1998 Olivetti & Oracle Research Laboratory |
8 | * | 8 | * |
9 | * This software is distributed in the hope that it will be useful, | 9 | * This software is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | /* D3DES (V5.09) - | 14 | /* D3DES (V5.09) - |
15 | * | 15 | * |
16 | * A portable, public domain, version of the Data Encryption Standard. | 16 | * A portable, public domain, version of the Data Encryption Standard. |
17 | * | 17 | * |
18 | * Written with Symantec's THINK (Lightspeed) C by Richard Outerbridge. | 18 | * Written with Symantec's THINK (Lightspeed) C by Richard Outerbridge. |
19 | * Thanks to: Dan Hoey for his excellent Initial and Inverse permutation | 19 | * Thanks to: Dan Hoey for his excellent Initial and Inverse permutation |
20 | * code; Jim Gillogly & Phil Karn for the DES key schedule code; Dennis | 20 | * code; Jim Gillogly & Phil Karn for the DES key schedule code; Dennis |
21 | * Ferguson, Eric Young and Dana How for comparing notes; and Ray Lau, | 21 | * Ferguson, Eric Young and Dana How for comparing notes; and Ray Lau, |
22 | * for humouring me on. | 22 | * for humouring me on. |
23 | * | 23 | * |
24 | * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. | 24 | * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. |
25 | * (GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. | 25 | * (GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include "d3des.h" | 28 | #include "d3des.h" |
29 | 29 | ||
30 | static void scrunch(unsigned char *, unsigned long *); | 30 | static void scrunch(unsigned char *, unsigned long *); |
31 | static void unscrun(unsigned long *, unsigned char *); | 31 | static void unscrun(unsigned long *, unsigned char *); |
32 | static void desfunc(unsigned long *, unsigned long *); | 32 | static void desfunc(unsigned long *, unsigned long *); |
33 | static void cookey(unsigned long *); | 33 | static void cookey(unsigned long *); |
34 | 34 | ||
35 | static unsigned long KnL[32] = { 0L }; | 35 | static unsigned long KnL[32] = { 0L }; |
36 | static unsigned long KnR[32] = { 0L }; | ||
37 | static unsigned long Kn3[32] = { 0L }; | ||
38 | static unsigned char Df_Key[24] = { | ||
39 | 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef, | ||
40 | 0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10, | ||
41 | 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67 }; | ||
42 | |||
43 | static unsigned short bytebit[8]= { | 36 | static unsigned short bytebit[8]= { |
44 | 01, 02, 04, 010, 020, 040, 0100, 0200 }; | 37 | 01, 02, 04, 010, 020, 040, 0100, 0200 }; |
45 | 38 | ||
46 | static unsigned long bigbyte[24] = { | 39 | static unsigned long bigbyte[24] = { |
47 | 0x800000L, 0x400000L, 0x200000L,0x100000L, | 40 | 0x800000L, 0x400000L, 0x200000L,0x100000L, |
48 | 0x80000L, 0x40000L, 0x20000L,0x10000L, | 41 | 0x80000L, 0x40000L, 0x20000L,0x10000L, |
49 | 0x8000L, 0x4000L, 0x2000L,0x1000L, | 42 | 0x8000L, 0x4000L, 0x2000L,0x1000L, |
50 | 0x800L, 0x400L, 0x200L, 0x100L, | 43 | 0x800L, 0x400L, 0x200L, 0x100L, |
51 | 0x80L, 0x40L, 0x20L, 0x10L, | 44 | 0x80L, 0x40L, 0x20L, 0x10L, |
52 | 0x8L, 0x4L, 0x2L, 0x1L}; | 45 | 0x8L, 0x4L, 0x2L, 0x1L}; |
53 | 46 | ||
54 | /* Use the key schedule specified in the Standard (ANSI X3.92-1981). */ | 47 | /* Use the key schedule specified in the Standard (ANSI X3.92-1981). */ |
55 | 48 | ||
56 | static unsigned char pc1[56] = { | 49 | static unsigned char pc1[56] = { |
57 | 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, | 50 | 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, |
58 | 9, 1, 58, 50, 42, 34, 26,18, 10, 2, 59, 51, 43, 35, | 51 | 9, 1, 58, 50, 42, 34, 26,18, 10, 2, 59, 51, 43, 35, |
59 | 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, | 52 | 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, |
60 | 13, 5, 60, 52, 44, 36, 28,20, 12, 4, 27, 19, 11, 3 }; | 53 | 13, 5, 60, 52, 44, 36, 28,20, 12, 4, 27, 19, 11, 3 }; |
61 | 54 | ||
62 | static unsigned char totrot[16] = { | 55 | static unsigned char totrot[16] = { |
63 | 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 }; | 56 | 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 }; |
64 | 57 | ||
65 | static unsigned char pc2[48] = { | 58 | static unsigned char pc2[48] = { |
66 | 13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, | 59 | 13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, |
67 | 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, | 60 | 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, |
68 | 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, | 61 | 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, |
69 | 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 }; | 62 | 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 }; |
70 | 63 | ||
71 | void deskey(key, edf)/* Thanks to James Gillogly & Phil Karn! */ | 64 | void deskey(key, edf)/* Thanks to James Gillogly & Phil Karn! */ |
72 | unsigned char *key; | 65 | unsigned char *key; |
73 | short edf; | 66 | short edf; |
74 | { | 67 | { |
75 | register int i, j, l, m, n; | 68 | register int i, j, l, m, n; |
76 | unsigned char pc1m[56], pcr[56]; | 69 | unsigned char pc1m[56], pcr[56]; |
77 | unsigned long kn[32]; | 70 | unsigned long kn[32]; |
78 | 71 | ||
79 | for ( j = 0; j < 56; j++ ) { | 72 | for ( j = 0; j < 56; j++ ) { |
80 | l = pc1[j]; | 73 | l = pc1[j]; |
81 | m = l & 07; | 74 | m = l & 07; |
82 | pc1m[j] = (key[l >> 3] & bytebit[m]) ? 1 : 0; | 75 | pc1m[j] = (key[l >> 3] & bytebit[m]) ? 1 : 0; |
83 | } | 76 | } |
84 | for( i = 0; i < 16; i++ ) { | 77 | for( i = 0; i < 16; i++ ) { |
85 | if( edf == DE1 ) m = (15 - i) << 1; | 78 | if( edf == DE1 ) m = (15 - i) << 1; |
86 | else m = i << 1; | 79 | else m = i << 1; |
87 | n = m + 1; | 80 | n = m + 1; |
88 | kn[m] = kn[n] = 0L; | 81 | kn[m] = kn[n] = 0L; |
89 | for( j = 0; j < 28; j++ ) { | 82 | for( j = 0; j < 28; j++ ) { |
90 | l = j + totrot[i]; | 83 | l = j + totrot[i]; |
diff --git a/noncore/comm/keypebble/krfbcanvas.cpp b/noncore/comm/keypebble/krfbcanvas.cpp index b3525df..d5b8ce7 100644 --- a/noncore/comm/keypebble/krfbcanvas.cpp +++ b/noncore/comm/keypebble/krfbcanvas.cpp | |||
@@ -1,129 +1,131 @@ | |||
1 | #include "krfbconnection.h" | 1 | #include "krfbconnection.h" |
2 | #include "krfbcanvas.h" | 2 | #include "krfbcanvas.h" |
3 | #include "krfbbuffer.h" | 3 | #include "krfbbuffer.h" |
4 | 4 | ||
5 | /* OPIE */ | 5 | /* OPIE */ |
6 | #include <opie2/odebug.h> | 6 | #include <opie2/odebug.h> |
7 | #include <qpe/qpeapplication.h> | 7 | #include <qpe/qpeapplication.h> |
8 | using namespace Opie::Core; | 8 | using namespace Opie::Core; |
9 | 9 | ||
10 | /* QT */ | 10 | /* QT */ |
11 | #include <qclipboard.h> | 11 | #include <qclipboard.h> |
12 | 12 | ||
13 | KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) | 13 | KRFBCanvas::KRFBCanvas( QWidget *parent, const char *name ) |
14 | : QScrollView( parent, name ) | 14 | : QScrollView( parent, name ) |
15 | { | 15 | { |
16 | connection_ = new KRFBConnection(); | 16 | connection_ = new KRFBConnection(); |
17 | connect( connection_, SIGNAL( loggedIn() ), | 17 | connect( connection_, SIGNAL( loggedIn() ), |
18 | this, SLOT( loggedIn() ) ); | 18 | this, SLOT( loggedIn() ) ); |
19 | 19 | ||
20 | loggedIn_ = false; | 20 | loggedIn_ = false; |
21 | 21 | ||
22 | //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); | 22 | //QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold); |
23 | 23 | ||
24 | viewport()->setFocusPolicy( QWidget::StrongFocus ); | 24 | viewport()->setFocusPolicy( QWidget::StrongFocus ); |
25 | viewport()->setFocus(); | 25 | viewport()->setFocus(); |
26 | 26 | ||
27 | nextRightClick=0; | 27 | nextRightClick=0; |
28 | nextDoubleClick=0; | 28 | nextDoubleClick=0; |
29 | } | 29 | } |
30 | 30 | ||
31 | KRFBCanvas::~KRFBCanvas() | 31 | KRFBCanvas::~KRFBCanvas() |
32 | { | 32 | { |
33 | } | 33 | } |
34 | 34 | ||
35 | 35 | ||
36 | void KRFBCanvas::openConnection(KRFBServer server) | 36 | void KRFBCanvas::openConnection(KRFBServer server) |
37 | { | 37 | { |
38 | 38 | ||
39 | 39 | ||
40 | QCString host = server.hostname.latin1(); | 40 | QCString host = server.hostname.latin1(); |
41 | password=server.password; | 41 | password=server.password; |
42 | connection_->connectTo( server); | 42 | connection_->connectTo( server); |
43 | } | 43 | } |
44 | 44 | ||
45 | 45 | ||
46 | void KRFBCanvas::openURL( const QUrl &url ) | 46 | void KRFBCanvas::openURL( const QUrl &url ) |
47 | { | 47 | { |
48 | if ( loggedIn_ ) { | 48 | if ( loggedIn_ ) { |
49 | owarn << "openURL invoked when logged in\n" << oendl; | 49 | owarn << "openURL invoked when logged in\n" << oendl; |
50 | return; | 50 | return; |
51 | } | 51 | } |
52 | 52 | ||
53 | QCString host = url.host().latin1(); | 53 | QCString host = url.host().latin1(); |
54 | int display = url.port(); | 54 | int display = url.port(); |
55 | Q_UNUSED( host ) | ||
56 | Q_UNUSED( display ) | ||
55 | 57 | ||
56 | // connection_->connectTo( host, display ); | 58 | // connection_->connectTo( host, display ); |
57 | } | 59 | } |
58 | 60 | ||
59 | void KRFBCanvas::closeConnection() | 61 | void KRFBCanvas::closeConnection() |
60 | { | 62 | { |
61 | loggedIn_ = false; | 63 | loggedIn_ = false; |
62 | connection_->disconnect(); | 64 | connection_->disconnect(); |
63 | 65 | ||
64 | viewport()->setMouseTracking( false ); | 66 | viewport()->setMouseTracking( false ); |
65 | viewport()->setBackgroundMode( PaletteDark ); | 67 | viewport()->setBackgroundMode( PaletteDark ); |
66 | setBackgroundMode( PaletteDark ); | 68 | setBackgroundMode( PaletteDark ); |
67 | update(); | 69 | update(); |
68 | } | 70 | } |
69 | 71 | ||
70 | 72 | ||
71 | void KRFBCanvas::bell() | 73 | void KRFBCanvas::bell() |
72 | { | 74 | { |
73 | if ( connection_->options()->deIconify ) { | 75 | if ( connection_->options()->deIconify ) { |
74 | topLevelWidget()->raise(); | 76 | topLevelWidget()->raise(); |
75 | topLevelWidget()->show(); | 77 | topLevelWidget()->show(); |
76 | } | 78 | } |
77 | } | 79 | } |
78 | 80 | ||
79 | void KRFBCanvas::loggedIn() | 81 | void KRFBCanvas::loggedIn() |
80 | { | 82 | { |
81 | owarn << "Ok, we're logged in" << oendl; | 83 | owarn << "Ok, we're logged in" << oendl; |
82 | 84 | ||
83 | // | 85 | // |
84 | // Get ready for action | 86 | // Get ready for action |
85 | // | 87 | // |
86 | loggedIn_ = true; | 88 | loggedIn_ = true; |
87 | viewport()->setMouseTracking( true ); | 89 | viewport()->setMouseTracking( true ); |
88 | viewport()->setBackgroundMode( NoBackground ); | 90 | viewport()->setBackgroundMode( NoBackground ); |
89 | setBackgroundMode( NoBackground ); | 91 | setBackgroundMode( NoBackground ); |
90 | 92 | ||
91 | // Start using the buffer | 93 | // Start using the buffer |
92 | connect( connection_->buffer(), SIGNAL( sizeChanged(int,int) ), | 94 | connect( connection_->buffer(), SIGNAL( sizeChanged(int,int) ), |
93 | this, SLOT( resizeContents(int,int) ) ); | 95 | this, SLOT( resizeContents(int,int) ) ); |
94 | connect( connection_->buffer(), SIGNAL( updated(int,int,int,int) ), | 96 | connect( connection_->buffer(), SIGNAL( updated(int,int,int,int) ), |
95 | this, SLOT( viewportUpdate(int,int,int,int) ) ); | 97 | this, SLOT( viewportUpdate(int,int,int,int) ) ); |
96 | connect( connection_->buffer(), SIGNAL( bell() ), | 98 | connect( connection_->buffer(), SIGNAL( bell() ), |
97 | this, SLOT( bell() ) ); | 99 | this, SLOT( bell() ) ); |
98 | connect( qApp->clipboard(), SIGNAL( dataChanged() ), | 100 | connect( qApp->clipboard(), SIGNAL( dataChanged() ), |
99 | this, SLOT( clipboardChanged() ) ); | 101 | this, SLOT( clipboardChanged() ) ); |
100 | } | 102 | } |
101 | 103 | ||
102 | void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) | 104 | void KRFBCanvas::viewportPaintEvent( QPaintEvent *e ) |
103 | { | 105 | { |
104 | QRect r = e->rect(); | 106 | QRect r = e->rect(); |
105 | 107 | ||
106 | if ( loggedIn_ ) { | 108 | if ( loggedIn_ ) { |
107 | QPixmap p; | 109 | QPixmap p; |
108 | 110 | ||
109 | bitBlt( viewport(), r.x(), r.y(), | 111 | bitBlt( viewport(), r.x(), r.y(), |
110 | connection_->buffer()->pixmap(), | 112 | connection_->buffer()->pixmap(), |
111 | r.x() + contentsX(), r.y() + contentsY(), | 113 | r.x() + contentsX(), r.y() + contentsY(), |
112 | r.width(), r.height() ); | 114 | r.width(), r.height() ); |
113 | } | 115 | } |
114 | else { | 116 | else { |
115 | QScrollView::viewportPaintEvent( e ); | 117 | QScrollView::viewportPaintEvent( e ); |
116 | } | 118 | } |
117 | } | 119 | } |
118 | 120 | ||
119 | void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) | 121 | void KRFBCanvas::viewportUpdate( int x, int y, int w, int h ) |
120 | { | 122 | { |
121 | updateContents( x, y, w, h ); | 123 | updateContents( x, y, w, h ); |
122 | } | 124 | } |
123 | 125 | ||
124 | void KRFBCanvas::contentsMousePressEvent( QMouseEvent *e ) | 126 | void KRFBCanvas::contentsMousePressEvent( QMouseEvent *e ) |
125 | { | 127 | { |
126 | 128 | ||
127 | if (nextDoubleClick) { | 129 | if (nextDoubleClick) { |
128 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),LeftButton,LeftButton)); | 130 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonPress, e->pos(),LeftButton,LeftButton)); |
129 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); | 131 | connection_->buffer()->mouseEvent( &QMouseEvent(QEvent::MouseButtonRelease, e->pos(),LeftButton,0)); |
diff --git a/noncore/comm/keypebble/kvnc.cpp b/noncore/comm/keypebble/kvnc.cpp index 88cb50b..3a8e919 100644 --- a/noncore/comm/keypebble/kvnc.cpp +++ b/noncore/comm/keypebble/kvnc.cpp | |||
@@ -1,94 +1,94 @@ | |||
1 | #include <qaction.h> | 1 | #include <qaction.h> |
2 | #include <qpopupmenu.h> | 2 | #include <qpopupmenu.h> |
3 | #include <qpushbutton.h> | 3 | #include <qpushbutton.h> |
4 | #include <qmessagebox.h> | 4 | #include <qmessagebox.h> |
5 | #include <qlistbox.h> | 5 | #include <qlistbox.h> |
6 | #include <qpe/qpeapplication.h> | 6 | #include <qpe/qpeapplication.h> |
7 | #include <qpe/resource.h> | 7 | #include <qpe/resource.h> |
8 | 8 | ||
9 | #include <assert.h> | 9 | #include <assert.h> |
10 | 10 | ||
11 | #include "kvnc.h" | 11 | #include "kvnc.h" |
12 | #include "krfbcanvas.h" | 12 | #include "krfbcanvas.h" |
13 | #include "krfbconnection.h" | 13 | #include "krfbconnection.h" |
14 | #include "kvncconndlg.h" | 14 | #include "kvncconndlg.h" |
15 | 15 | ||
16 | static int u_id = 1; | 16 | static int u_id = 1; |
17 | static int get_unique_id() | 17 | static int get_unique_id() |
18 | { | 18 | { |
19 | return u_id++; | 19 | return u_id++; |
20 | } | 20 | } |
21 | 21 | ||
22 | 22 | ||
23 | /* XPM */ | 23 | /* XPM */ |
24 | static char * menu_xpm[] = { | 24 | static char * menu_xpm[] = { |
25 | "12 12 5 1", | 25 | "12 12 5 1", |
26 | " c None", | 26 | " c None", |
27 | ".c #000000", | 27 | ".c #000000", |
28 | "+c #FFFDAD", | 28 | "+c #FFFDAD", |
29 | "@c #FFFF00", | 29 | "@c #FFFF00", |
30 | "#c #E5E100", | 30 | "#c #E5E100", |
31 | " ", | 31 | " ", |
32 | " ", | 32 | " ", |
33 | " ......... ", | 33 | " ......... ", |
34 | " .+++++++. ", | 34 | " .+++++++. ", |
35 | " .+@@@@#. ", | 35 | " .+@@@@#. ", |
36 | " .+@@@#. ", | 36 | " .+@@@#. ", |
37 | " .+@@#. ", | 37 | " .+@@#. ", |
38 | " .+@#. ", | 38 | " .+@#. ", |
39 | " .+#. ", | 39 | " .+#. ", |
40 | " .+. ", | 40 | " .+. ", |
41 | " .. ", | 41 | " .. ", |
42 | " "}; | 42 | " "}; |
43 | 43 | ||
44 | const int StatusTextId = 0; | 44 | const int StatusTextId = 0; |
45 | 45 | ||
46 | KVNC::KVNC( QWidget *parent, const char *name, WFlags f) : QMainWindow( 0, name ,WStyle_ContextHelp) | 46 | KVNC::KVNC( QWidget *parent, const char *name, WFlags ) : QMainWindow( parent, name ,WStyle_ContextHelp) |
47 | { | 47 | { |
48 | setCaption( tr("VNC Viewer") ); | 48 | setCaption( tr("VNC Viewer") ); |
49 | fullscreen = false; | 49 | fullscreen = false; |
50 | 50 | ||
51 | stack = new QWidgetStack( this ); | 51 | stack = new QWidgetStack( this ); |
52 | setCentralWidget( stack ); | 52 | setCentralWidget( stack ); |
53 | 53 | ||
54 | bookmarkSelector=new KVNCBookmarkDlg(); | 54 | bookmarkSelector=new KVNCBookmarkDlg(); |
55 | stack->addWidget(bookmarkSelector,get_unique_id()); | 55 | stack->addWidget(bookmarkSelector,get_unique_id()); |
56 | stack->raiseWidget( bookmarkSelector ); | 56 | stack->raiseWidget( bookmarkSelector ); |
57 | 57 | ||
58 | canvas = new KRFBCanvas( stack, "canvas" ); | 58 | canvas = new KRFBCanvas( stack, "canvas" ); |
59 | stack->addWidget(canvas,get_unique_id()); | 59 | stack->addWidget(canvas,get_unique_id()); |
60 | setCentralWidget( stack ); | 60 | setCentralWidget( stack ); |
61 | 61 | ||
62 | 62 | ||
63 | connect( bookmarkSelector->bookmarkList, SIGNAL(clicked(QListBoxItem*)), | 63 | connect( bookmarkSelector->bookmarkList, SIGNAL(clicked(QListBoxItem*)), |
64 | this, SLOT(openConnection(QListBoxItem*)) ); | 64 | this, SLOT(openConnection(QListBoxItem*)) ); |
65 | connect( canvas->connection(), SIGNAL(statusChanged(const QString&)), | 65 | connect( canvas->connection(), SIGNAL(statusChanged(const QString&)), |
66 | this, SLOT(statusMessage(const QString&)) ); | 66 | this, SLOT(statusMessage(const QString&)) ); |
67 | connect( canvas->connection(), SIGNAL(error(const QString&)), | 67 | connect( canvas->connection(), SIGNAL(error(const QString&)), |
68 | this, SLOT(error(const QString&)) ); | 68 | this, SLOT(error(const QString&)) ); |
69 | connect( canvas->connection(), SIGNAL(connected()), this, SLOT(connected()) ); | 69 | connect( canvas->connection(), SIGNAL(connected()), this, SLOT(connected()) ); |
70 | connect( canvas->connection(), SIGNAL(loggedIn()), this, SLOT(loggedIn()) ); | 70 | connect( canvas->connection(), SIGNAL(loggedIn()), this, SLOT(loggedIn()) ); |
71 | connect( canvas->connection(), SIGNAL(disconnected()), this, SLOT(disconnected()) ); | 71 | connect( canvas->connection(), SIGNAL(disconnected()), this, SLOT(disconnected()) ); |
72 | 72 | ||
73 | setupActions(); | 73 | setupActions(); |
74 | 74 | ||
75 | cornerButton = new QPushButton( this ); | 75 | cornerButton = new QPushButton( this ); |
76 | cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); | 76 | cornerButton->setPixmap( QPixmap( (const char**)menu_xpm ) ); |
77 | connect( cornerButton, SIGNAL(pressed()), this, SLOT(showMenu()) ); | 77 | connect( cornerButton, SIGNAL(pressed()), this, SLOT(showMenu()) ); |
78 | canvas->setCornerWidget( cornerButton ); | 78 | canvas->setCornerWidget( cornerButton ); |
79 | 79 | ||
80 | stack->raiseWidget( bookmarkSelector ); | 80 | stack->raiseWidget( bookmarkSelector ); |
81 | 81 | ||
82 | 82 | ||
83 | bar= new QToolBar( this ); | 83 | bar= new QToolBar( this ); |
84 | setToolBarsMovable( false ); | 84 | setToolBarsMovable( false ); |
85 | setRightJustification(false); | 85 | setRightJustification(false); |
86 | 86 | ||
87 | 87 | ||
88 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), | 88 | QAction *n = new QAction( tr( "New Connection" ), Resource::loadPixmap( "new" ), |
89 | QString::null, 0, this, 0 ); | 89 | QString::null, 0, this, 0 ); |
90 | connect( n, SIGNAL( activated() ), | 90 | connect( n, SIGNAL( activated() ), |
91 | this, SLOT( newConnection() ) ); | 91 | this, SLOT( newConnection() ) ); |
92 | n->addTo( bar ); | 92 | n->addTo( bar ); |
93 | 93 | ||
94 | QAction *o = new QAction( tr( "Open Bookmark" ), Resource::loadPixmap( "fileopen" ), | 94 | QAction *o = new QAction( tr( "Open Bookmark" ), Resource::loadPixmap( "fileopen" ), |
diff --git a/noncore/comm/keypebble/vncauth.c b/noncore/comm/keypebble/vncauth.c index dc276bf..277d145 100644 --- a/noncore/comm/keypebble/vncauth.c +++ b/noncore/comm/keypebble/vncauth.c | |||
@@ -4,97 +4,97 @@ | |||
4 | * This is free software; you can redistribute it and/or modify | 4 | * This is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU General Public License as published by | 5 | * it under the terms of the GNU General Public License as published by |
6 | * the Free Software Foundation; either version 2 of the License, or | 6 | * the Free Software Foundation; either version 2 of the License, or |
7 | * (at your option) any later version. | 7 | * (at your option) any later version. |
8 | * | 8 | * |
9 | * This software is distributed in the hope that it will be useful, | 9 | * This software is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | * GNU General Public License for more details. | 12 | * GNU General Public License for more details. |
13 | * | 13 | * |
14 | * You should have received a copy of the GNU General Public License | 14 | * You should have received a copy of the GNU General Public License |
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
17 | * USA. | 17 | * USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | /* | 20 | /* |
21 | * vncauth.c - Functions for VNC password management and authentication. | 21 | * vncauth.c - Functions for VNC password management and authentication. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <stdio.h> | 24 | #include <stdio.h> |
25 | #include <stdlib.h> | 25 | #include <stdlib.h> |
26 | #include <string.h> | 26 | #include <string.h> |
27 | #include <sys/types.h> | 27 | #include <sys/types.h> |
28 | #include <sys/stat.h> | 28 | #include <sys/stat.h> |
29 | #include <time.h> | 29 | #include <time.h> |
30 | #include "vncauth.h" | 30 | #include "vncauth.h" |
31 | #include "d3des.h" | 31 | #include "d3des.h" |
32 | 32 | ||
33 | 33 | ||
34 | /* | 34 | /* |
35 | * We use a fixed key to store passwords, since we assume that our local | 35 | * We use a fixed key to store passwords, since we assume that our local |
36 | * file system is secure but nonetheless don't want to store passwords | 36 | * file system is secure but nonetheless don't want to store passwords |
37 | * as plaintext. | 37 | * as plaintext. |
38 | */ | 38 | */ |
39 | 39 | ||
40 | unsigned char fixedkey[8] = {23,82,107,6,35,78,88,7}; | 40 | unsigned char fixedkey[8] = {23,82,107,6,35,78,88,7}; |
41 | 41 | ||
42 | 42 | ||
43 | /* | 43 | /* |
44 | * Encrypt a password and store it in a file. Returns 0 if successful, | 44 | * Encrypt a password and store it in a file. Returns 0 if successful, |
45 | * 1 if the file could not be written. | 45 | * 1 if the file could not be written. |
46 | */ | 46 | */ |
47 | 47 | ||
48 | int | 48 | int |
49 | vncEncryptAndStorePasswd(char *passwd, char *fname) | 49 | vncEncryptAndStorePasswd(char *passwd, char *fname) |
50 | { | 50 | { |
51 | FILE *fp; | 51 | FILE *fp; |
52 | int i; | 52 | uint i; |
53 | unsigned char encryptedPasswd[8]; | 53 | unsigned char encryptedPasswd[8]; |
54 | 54 | ||
55 | if ((fp = fopen(fname,"w")) == NULL) return 1; | 55 | if ((fp = fopen(fname,"w")) == NULL) return 1; |
56 | 56 | ||
57 | chmod(fname, S_IRUSR|S_IWUSR); | 57 | chmod(fname, S_IRUSR|S_IWUSR); |
58 | 58 | ||
59 | /* pad password with nulls */ | 59 | /* pad password with nulls */ |
60 | 60 | ||
61 | for (i = 0; i < 8; i++) { | 61 | for (i = 0; i < 8; i++) { |
62 | if (i < strlen(passwd)) { | 62 | if (i < strlen(passwd)) { |
63 | encryptedPasswd[i] = passwd[i]; | 63 | encryptedPasswd[i] = passwd[i]; |
64 | } else { | 64 | } else { |
65 | encryptedPasswd[i] = 0; | 65 | encryptedPasswd[i] = 0; |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | /* Do encryption in-place - this way we overwrite our copy of the plaintext | 69 | /* Do encryption in-place - this way we overwrite our copy of the plaintext |
70 | password */ | 70 | password */ |
71 | 71 | ||
72 | deskey(fixedkey, EN0); | 72 | deskey(fixedkey, EN0); |
73 | des(encryptedPasswd, encryptedPasswd); | 73 | des(encryptedPasswd, encryptedPasswd); |
74 | 74 | ||
75 | for (i = 0; i < 8; i++) { | 75 | for (i = 0; i < 8; i++) { |
76 | putc(encryptedPasswd[i], fp); | 76 | putc(encryptedPasswd[i], fp); |
77 | } | 77 | } |
78 | 78 | ||
79 | fclose(fp); | 79 | fclose(fp); |
80 | return 0; | 80 | return 0; |
81 | } | 81 | } |
82 | 82 | ||
83 | 83 | ||
84 | /* | 84 | /* |
85 | * Decrypt a password from a file. Returns a pointer to a newly allocated | 85 | * Decrypt a password from a file. Returns a pointer to a newly allocated |
86 | * string containing the password or a null pointer if the password could | 86 | * string containing the password or a null pointer if the password could |
87 | * not be retrieved for some reason. | 87 | * not be retrieved for some reason. |
88 | */ | 88 | */ |
89 | 89 | ||
90 | char * | 90 | char * |
91 | vncDecryptPasswdFromFile(char *fname) | 91 | vncDecryptPasswdFromFile(char *fname) |
92 | { | 92 | { |
93 | FILE *fp; | 93 | FILE *fp; |
94 | int i, ch; | 94 | int i, ch; |
95 | unsigned char *passwd = (unsigned char *)malloc(9); | 95 | unsigned char *passwd = (unsigned char *)malloc(9); |
96 | 96 | ||
97 | if ((fp = fopen(fname,"r")) == NULL) return NULL; | 97 | if ((fp = fopen(fname,"r")) == NULL) return NULL; |
98 | 98 | ||
99 | for (i = 0; i < 8; i++) { | 99 | for (i = 0; i < 8; i++) { |
100 | ch = getc(fp); | 100 | ch = getc(fp); |