// HMACSHA384.cs: HMAC implementation using SHA384
//
// Author:
-// Sebastien Pouliot <sebastien@ximian.com>
+// Sebastien Pouliot <sebastien@xamarin.com>
//
// (C) 2003 Motus Technologies Inc. (http://www.motus.com)
// Copyright (C) 2004-2005, 2007 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
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0
-
using System.Runtime.InteropServices;
using Mono.Security.Cryptography;
[ComVisible (true)]
public class HMACSHA384 : HMAC {
- static bool legacy_mode;
private bool legacy;
+#if !FULL_AOT_RUNTIME
+ static bool legacy_mode;
+
static HMACSHA384 ()
{
legacy_mode = (Environment.GetEnvironmentVariable ("legacyHMACMode") == "1");
}
+#endif
public HMACSHA384 ()
: this (KeyBuilder.Key (8))
{
- ProduceLegacyHmacValues = legacy_mode;
}
- public HMACSHA384 (byte[] rgbKey)
+ public HMACSHA384 (byte[] key)
{
+#if FULL_AOT_RUNTIME
+ BlockSizeValue = 128;
+ SetHash ("SHA384", new SHA384Managed ());
+#else
ProduceLegacyHmacValues = legacy_mode;
HashName = "SHA384";
+#endif
HashSizeValue = 384;
- Key = rgbKey;
+ Key = key;
}
// this property will appear in the next .NET service pack
}
}
}
-
-#endif