1 // 2 // System.Security.Cryptography.Pkcs.SignerInfo class 3 // 4 // Author: 5 // Sebastien Pouliot <sebastien@ximian.com> 6 // 7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com) 8 // Copyright (C) 2004-2005 Novell Inc. (http://www.novell.com) 9 // 10 // Permission is hereby granted, free of charge, to any person obtaining 11 // a copy of this software and associated documentation files (the 12 // "Software"), to deal in the Software without restriction, including 13 // without limitation the rights to use, copy, modify, merge, publish, 14 // distribute, sublicense, and/or sell copies of the Software, and to 15 // permit persons to whom the Software is furnished to do so, subject to 16 // the following conditions: 17 // 18 // The above copyright notice and this permission notice shall be 19 // included in all copies or substantial portions of the Software. 20 // 21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 // 29 30 #if SECURITY_DEP 31 32 using System.Security.Cryptography.X509Certificates; 33 34 namespace System.Security.Cryptography.Pkcs { 35 36 public sealed class SignerInfo { 37 38 private SubjectIdentifier _signer; 39 private X509Certificate2 _certificate; 40 private Oid _digest; 41 private SignerInfoCollection _counter; 42 private CryptographicAttributeObjectCollection _signed; 43 private CryptographicAttributeObjectCollection _unsigned; 44 private int _version; 45 46 // only accessible from SignedPkcs7.SignerInfos SignerInfo(string hashName, X509Certificate2 certificate, SubjectIdentifierType type, object o, int version)47 internal SignerInfo (string hashName, X509Certificate2 certificate, SubjectIdentifierType type, object o, int version) 48 { 49 _digest = new Oid (CryptoConfig.MapNameToOID (hashName) ?? hashName); 50 _certificate = certificate; 51 _counter = new SignerInfoCollection (); 52 _signed = new CryptographicAttributeObjectCollection (); 53 _unsigned = new CryptographicAttributeObjectCollection (); 54 _signer = new SubjectIdentifier (type, o); 55 _version = version; 56 } 57 58 // properties 59 60 public CryptographicAttributeObjectCollection SignedAttributes { 61 get { return _signed; } 62 } 63 64 public X509Certificate2 Certificate { 65 get { return _certificate; } 66 } 67 68 public SignerInfoCollection CounterSignerInfos { 69 get { return _counter; } 70 } 71 72 public Oid DigestAlgorithm { 73 get { return _digest; } 74 } 75 76 public SubjectIdentifier SignerIdentifier { 77 get { return _signer; } 78 } 79 80 public CryptographicAttributeObjectCollection UnsignedAttributes { 81 get { return _unsigned; } 82 } 83 84 public int Version { 85 get { return _version; } 86 } 87 88 // methods 89 90 [MonoTODO] CheckHash()91 public void CheckHash () 92 { 93 } 94 95 [MonoTODO] CheckSignature(bool verifySignatureOnly)96 public void CheckSignature (bool verifySignatureOnly) 97 { 98 } 99 100 [MonoTODO] CheckSignature(X509Certificate2Collection extraStore, bool verifySignatureOnly)101 public void CheckSignature (X509Certificate2Collection extraStore, bool verifySignatureOnly) 102 { 103 } 104 105 [MonoTODO] ComputeCounterSignature()106 public void ComputeCounterSignature () 107 { 108 } 109 110 [MonoTODO] ComputeCounterSignature(CmsSigner signer)111 public void ComputeCounterSignature (CmsSigner signer) 112 { 113 } 114 115 [MonoTODO] RemoveCounterSignature(SignerInfo counterSignerInfo)116 public void RemoveCounterSignature (SignerInfo counterSignerInfo) 117 { 118 } 119 120 [MonoTODO] RemoveCounterSignature(int index)121 public void RemoveCounterSignature (int index) 122 { 123 } 124 } 125 } 126 127 #endif 128