Q : How do I add S/KEY md4,md5,sha1 support to my FTP client ?

target audience : ftp client software authors / programmer

A : The RaidenFTPD FTP server supports S/KEY one time password protection , md4,md5,sha-1 , and we are glad to offer this RaidenSKEY Active-X control to FTP client authors for FREE !

Step1 : download the RaidenSKEY Active-X control from here

Step2 : Installation

Extract SKeyX.zip into a dir (better be your project dir with a fixed location) , and register the component , type

regsvr32 SKeyX.ocx

in the command prompt

Step3 : Open your project , insert this active-x into your project

Example for Microsoft Visual C++

1.Open your project file

2.Pick any dialog resource and click the right mouse button->insert activex control

3.Find RaidenSkeyX Control and click OK

4.Under the same dialog resource , clicl right mouse button and launch Class wizard

5.Click the member variables tab , find the control id IDC_RAIDENSKEYXCTRL1 , and click Add variable button

6.Now the MSVC will ask you if you want to generate a C++ Wrapper class for it , click YES

7.When the Add Member Variable dialog box appears , enter a proper name for it , such as m_skeyx

8.Now goto the .CPP source file and include the generated raidenskeyx.h header file

9.Supposing you have exported this control pointer as p_skey (well this is your job)

10.If you have a server response such as :

331 Response to otp-md5 183 mule583 required for skey.

and the user's password is :


and you want the password you wish to reply to the ftp server

now we have this METHOD in the active-x for you

CString CRaidenSkeyX::GetOtpResult(LPCTSTR passWord, LPCTSTR srvResponse, short type)

parameters list :

LPCSTR passWord : in this case it's 'aaaa' , this is the user's passwrod , non-encryoted

LPCSTR srvResponse : in this case it's '331 Response to otp-md5 183 mule583 required for skey.' , yes you don't even need to cut anything , just send the whole string to this method

short type : you need to specify something now , if you want the result for

S/KEY otp md4 , set this to 2

S/KEY otp md5 , set this to 3

S/KEY otp sha-1 , set this to 4

return value :

the hashed password you need to pass to the server , such as 'GOAT MITE DIME ALMA DOOM RAIN' , and when you want to reply to the server you just need to make it in this format 'PASS GOAT MITE DIME ALMA DOOM RAIN<CR><LF>'

if the method can not support the has algorithm you specified or failed for some reason , the return value is "" (empty string)

11.Example call :

CString answer = p_skey->GetOtpResult("aaaa", "331 Response to otp-md5 183 mule583 required for skey.",3);

and the answer is now "GOAT MITE DIME ALMA DOOM RAIN"

12.Last and the most important , your setup program or application should register this control on the client's computer automatically

Warning : License Agreements

Licensing the RaidenSKEYX ActiveX control for distribution

The RaidenSKEYX ActiveX control

The RaidenSKEYX ActiveX control package allows you to include RaidenSKEYX.ocx in your 32-bit Windows applications, and to distribute these applications royalty-free if the following requirements are satistifed .

1:You can only distribute it with FTP Client software packages , not including FTP server packages

2.You must notify RaidenFTPD team before you distribute this activex control

3.You must put a copyright notice for this component in your readme file or software's about page

copyright owner : (C) RaidenFTPD team , 2001

4.Absolutely no warranty , if you use it or distribute it with your software package , you agree to use it with your own risk

That's ALL



REVISION 2.2 , 2001/09/04