// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0 && SECURITY_DEP
-
+#if SECURITY_DEP
+
+#if MONO_SECURITY_ALIAS
+extern alias MonoSecurity;
+using MonoSecurity::Mono.Security;
+using MonoSecurity::Mono.Security.Cryptography;
+using MSX = MonoSecurity::Mono.Security.X509;
+#else
using Mono.Security;
using Mono.Security.Cryptography;
using MSX = Mono.Security.X509;
+#endif
namespace System.Security.Cryptography.X509Certificates {
private AsnEncodedData _params;
private Oid _oid;
+ static byte[] Empty = new byte [0];
+
public PublicKey (Oid oid, AsnEncodedData parameters, AsnEncodedData keyValue)
{
if (oid == null)
if ((rcsp != null) && rcsp.PublicOnly) {
_key = certificate.RSA;
export_required = false;
- } else {
+ } else
+ {
RSAManaged rsam = (certificate.RSA as RSAManaged);
if ((rsam != null) && rsam.PublicOnly) {
_key = certificate.RSA;
_key = certificate.DSA;
export_required = false;
}
- // note: DSAManaged isn't availablt in Mono.Security due to a bug in Fx 1.x
+ // note: DSAManaged isn't available in Mono.Security due to a bug in Fx 1.x
if (export_required) {
DSAParameters rsap = certificate.DSA.ExportParameters (false);
_oid = new Oid (certificate.KeyAlgorithm);
_keyValue = new AsnEncodedData (_oid, certificate.PublicKey);
- _params = new AsnEncodedData (_oid, certificate.KeyAlgorithmParameters);
+ _params = new AsnEncodedData (_oid, certificate.KeyAlgorithmParameters ?? Empty);
}
// properties