| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- {
- $Project$
- $Workfile$
- $Revision$
- $DateUTC$
- $Id$
- This file is part of the Indy (Internet Direct) project, and is offered
- under the dual-licensing agreement described on the Indy website.
- (http://www.indyproject.org/)
- Copyright:
- (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
- }
- {
- $Log$
- }
- {
- Rev 1.0 27-03-05 10:04:26 MterWoord
- Second import, first time the filenames weren't prefixed with Id
- Rev 1.0 27-03-05 09:09:02 MterWoord
- Created
- }
- unit IdTlsServerOptions;
- interface
- uses
- Mono.Security.Protocol.Tls, Mono.Security.Authenticode, System.Security.Cryptography.X509Certificates;
- type
- TIdTlsServerOptions = class
- private
- FPrivateKey: PrivateKey;
- FPublicCertificate: X509Certificate;
- FProtocol: SecurityProtocolType;
- FClientNeedsCertificate: Boolean;
- procedure SetClientNeedsCertificate(const Value: Boolean);
- procedure SetPrivateKey(const Value: PrivateKey);
- procedure SetProtocol(const Value: SecurityProtocolType);
- procedure SetPublicCertificate(const Value: X509Certificate);
- public
- constructor Create;
- procedure LoadPublicCertificateFromFile(AFileName: string);
- procedure LoadPrivateKeyFromFile(AFileName: string; APassword: string = '');
- published
- property PublicCertificate: X509Certificate read FPublicCertificate write SetPublicCertificate;
- property PrivateKey: PrivateKey read FPrivateKey write SetPrivateKey;
- property Protocol: SecurityProtocolType read FProtocol write SetProtocol;
- property ClientNeedsCertificate: Boolean read FClientNeedsCertificate write SetClientNeedsCertificate;
- end;
- implementation
- { TIdTlsServerOptions }
- procedure TIdTlsServerOptions.SetPrivateKey(const Value: PrivateKey);
- begin
- FPrivateKey := Value;
- end;
- procedure TIdTlsServerOptions.SetPublicCertificate(const Value: X509Certificate);
- begin
- FPublicCertificate := Value;
- end;
- procedure TIdTlsServerOptions.SetProtocol(const Value: SecurityProtocolType);
- begin
- FProtocol := Value;
- end;
- procedure TIdTlsServerOptions.SetClientNeedsCertificate(const Value: Boolean);
- begin
- FClientNeedsCertificate := Value;
- end;
- constructor TIdTlsServerOptions.Create;
- begin
- inherited;
- FProtocol := SecurityProtocolType.Tls;
- FClientNeedsCertificate := False;
- end;
- procedure TIdTlsServerOptions.LoadPrivateKeyFromFile(AFileName,
- APassword: string);
- begin
- if APassword = '' then
- begin
- FPrivateKey := Mono.Security.Authenticode.PrivateKey.CreateFromFile(AFileName);
- end
- else
- begin
- FPrivateKey := Mono.Security.Authenticode.PrivateKey.CreateFromFile(AFileName, APassword);
- end;
- end;
- procedure TIdTlsServerOptions.LoadPublicCertificateFromFile(AFileName: string);
- begin
- FPublicCertificate := X509Certificate.CreateFromCertFile(AFileName);
- end;
- end.
|