1
다음 절차를 사용하여 스트림을 인코딩합니다. 내가 코덱이 초기화되지 않는 심지어 키를로드하려고하지 않는 것을 발견 코드에 스테핑런타임에서 코덱을 올바르게 초기화하는 방법 (터보 파워 록 박스 3)?
C.EncryptStream(Strm,DFS);
전화
에
procedure SaveEncodedStream(Strm:TStream; LicFileName:String);
var
C:TCodec;
CL:TCryptographicLibrary;
Sg:TSignatory;
KFS,DFS:TFileStream;
Dir:String;
begin
CL:=TCryptographicLibrary.Create(nil);
C:=TCodec.Create(nil);
SG:=TSignatory.Create(nil);
Dir := ExtractFilePath(ParamStr(0));
KFS:=TFileStream.Create(Dir+PublicKeyFile,fmOpenRead);
DFS:=TFileStream.Create(LicFileName,fmCreate);
try
C.CryptoLibrary:=CL;
C.BlockCipherId := 'native.RSA';
C.ChainModeId := 'native.CBC';
C.AsymetricKeySizeInBits := 1024;
SG.Codec:=C;
SG.LoadKeysFromStream(KFS,[partPublic]);
C.EncryptStream(Strm,DFS);
finally
CL.Free;
C.Free;
SG.Free;
KFS.Free;
DFS.Free;
end;
end;
받을 "잘못된 모드"오류가 발생했습니다. 양식에 componets을 배치하면 모든 것이 작동합니다. 하지만 Form이나 DataModule은 필요 없습니다.