RAD 2007에 kbmMW 코드기어 에디션이 있어서 공부중인데....
코드기어 에디션은 주요 암호화 컴포넌트가 빠져 있어서
대신 kbmMWEventCrypt를 써보려고 하는데 안됩니다.
데모에 있는 Stateful 폴더에 있는 클라이언트와 서버 폼에 각각 TkbmMWEventCrypt를 올리고 OnEncrypt / OnDecrypt 이벤트를 kbmMW 사이트에 있는 Developing_support_for_additional_encryption_libraries.pdf 문서에 나온 예제대로 다음처럼 그대로 넣고 실행했더니......................
(아직 잘 읽어보지 못했지만 대충 그냥 예제니까 그대로 사용하진 말라는 말이 있더군요...)
procedure TForm1.kbmMWEventCrypt1Decrypt(Sender: TObject; FromStream,
ToStream: TStream);
var
i:integer;
b:byte;
begin
For i:=0 to FromStream.Size-1 do
Begin
FromStream.Read(b,sizeof(byte)); // Read one byte from the FromS
b:=b XOR $FF; // So simple encryption.
ToStream.Write(b,sizeof(byte)); // Store the encrypted byte in
End;
ToStream.Seek(0,soFromBeginning); // Important to remember!
end;
procedure TForm1.kbmMWEventCrypt1Encrypt(Sender: TObject; FromStream,
ToStream: TStream);
var
i:integer;
b:byte;
begin
For i:=0 to FromStream.Size-1 do
Begin
FromStream.Read(b,sizeof(byte)); // Read one byte from the FromS
b:=b XOR $FF; // So simple encryption.
ToStream.Write(b,sizeof(byte)); // Store the encrypted byte in
End;
ToStream.Seek(0,soFromBeginning); // Important to remember!
end;
그리고 kbmMWTCPIPIndyServerTransport의
Crypt에 kbmMWEventCrypt를, 스트림포맷은 스탠다드를 넣었고...
서버 / 클라이언트 각각 똑 같이 맞추어 줬는데.....
서버를 실행하고 클라이언트에서 접속하려면 " Invalid / unknown transport stream format " 이라는 익셉션이 발생하고....
클라이언트는 그대로 얼어버립니다.
OnEncrypt / OnDecrypt 의 코드를 비워두어도 마찬가지입니다. 혹시 무료버젼은 이 기능이 지원되지 않는것인지???
초보라서 아무래도 접근을 잘못한거 같습니다.
제가 아직 기초가 많이 부족하지만 이 부분에 대해서 중요한 뭔가 빠뜨린게 있는지 알려주시면 고맙겠습니다.
|