2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / Microsoft.Web.Services / Microsoft.Web.Services.Security.X509 / FileCertificateStore.cs
1 //
2 // FileCertificateStore.cs: Handles a file-based certificate store.
3 //
4 // Author:
5 //      Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
9
10 using System;
11 using Mono.Security.Authenticode;
12
13 namespace Microsoft.Web.Services.Security.X509 {
14
15         internal class FileCertificateStore : ICertificateStore {
16
17                 private string _storeName;
18                 private X509CertificateStore.StoreOpenFlags _flags;
19                 private X509CertificateStore.StoreLocation _location;
20                 private IntPtr _handle;
21
22                 public FileCertificateStore (X509CertificateStore.StoreLocation location, string storeName, X509CertificateStore.StoreOpenFlags flags) 
23                 {
24                         _location = location;
25                         _storeName = storeName;
26                         _flags = flags;
27                 }
28
29                 public IntPtr Handle {
30                         get { return (IntPtr) 0; }
31                 }
32
33                 public X509CertificateCollection GetCollection () 
34                 {
35                         if (_spc == null) {
36                                 _spc = SoftwarePublisherCertificate.CreateFromFile (_storeName);
37                         }
38                         X509CertificateCollection coll = new X509CertificateCollection ();
39                         Mono.Security.X509.X509CertificateCollection spcoll = _spc.Certificates;
40                         foreach (Mono.Security.X509.X509Certificate x in spcoll) {
41                                 coll.Add (new X509Certificate (x.RawData));
42                         }
43                         return coll;
44                 }
45
46                 public void Close () {}
47         }
48 }