X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Security.Cryptography%2FDSASignatureDeformatter.cs;h=6a7284a036e9e4a2f60d4de8ce7bb9d8b3dff591;hb=0ffa570a3aff21e50c3fdfbe4e8758eed0a7c96d;hp=59940e0b86f2c82b5e708f4b29606c141e1cdb98;hpb=e7e787e337cdf64bfb14020e50edebb4efa7a808;p=mono.git diff --git a/mcs/class/corlib/System.Security.Cryptography/DSASignatureDeformatter.cs b/mcs/class/corlib/System.Security.Cryptography/DSASignatureDeformatter.cs old mode 100755 new mode 100644 index 59940e0b86f..6a7284a036e --- a/mcs/class/corlib/System.Security.Cryptography/DSASignatureDeformatter.cs +++ b/mcs/class/corlib/System.Security.Cryptography/DSASignatureDeformatter.cs @@ -3,17 +3,40 @@ // // Authors: // Thomas Neidhart (tome@sbox.tugraz.at) -// Sebastien Pouliot (sebastien@ximian.com) +// Sebastien Pouliot // // Portions (C) 2002 Motus Technologies Inc. (http://www.motus.com) -// (C) 2004 Novell (http://www.novell.com) +// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com) +// Copyright 2013 Xamarin Inc. (http://www.xamarin.com) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -using System; using System.Globalization; +using System.Runtime.InteropServices; + +using Mono.Security.Cryptography; namespace System.Security.Cryptography { + [ComVisible (true)] public class DSASignatureDeformatter : AsymmetricSignatureDeformatter { private DSA dsa; @@ -32,14 +55,10 @@ namespace System.Security.Cryptography { if (strName == null) throw new ArgumentNullException ("strName"); - try { - // just to test, we don't need the object - SHA1 hash = SHA1.Create (strName); - } - catch (InvalidCastException) { + var instance = PKCS1.CreateFromName (strName) as SHA1; + if (instance == null) throw new CryptographicUnexpectedOperationException ( Locale.GetText ("DSA requires SHA1")); - } } public override void SetKey (AsymmetricAlgorithm key) @@ -49,7 +68,8 @@ namespace System.Security.Cryptography { // a DSA keypair dsa = (DSA) key; } - // here null is accepted! + else + throw new ArgumentNullException ("key"); } public override bool VerifySignature (byte[] rgbHash, byte[] rgbSignature)