summary refs log tree commit diff
path: root/crypto/src
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@gmail.com>2022-06-23 17:54:55 +0700
committerPeter Dettman <peter.dettman@gmail.com>2022-06-23 17:54:55 +0700
commit2e2901ceac1291fab8c2ed9828bceded00440a16 (patch)
tree6abcd413230e769ce4a925cb5724d6d4e53d82e7 /crypto/src
parentTarget framework v4.0 (diff)
downloadBouncyCastle.NET-ed25519-2e2901ceac1291fab8c2ed9828bceded00440a16.tar.xz
New build organization
- TargetFrameworks netstandard2.0;net40
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/AssemblyInfo.cs81
-rw-r--r--crypto/src/BouncyCastle.Crypto.csproj30
-rw-r--r--crypto/src/asn1/DerGeneralizedTime.cs14
3 files changed, 52 insertions, 73 deletions
diff --git a/crypto/src/AssemblyInfo.cs b/crypto/src/AssemblyInfo.cs
index b53ba92d2..dda4619e4 100644
--- a/crypto/src/AssemblyInfo.cs
+++ b/crypto/src/AssemblyInfo.cs
@@ -1,6 +1,6 @@
 using System;
 using System.Reflection;
-//using System.Security.Permissions;
+using System.Runtime.CompilerServices;
 
 #if PORTABLE
 using System.Linq;
@@ -8,65 +8,6 @@ using System.Linq;
 using System.Runtime.InteropServices;
 #endif
 
-//
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-//
-[assembly: AssemblyTitle("BouncyCastle.Crypto")]
-[assembly: AssemblyDescription("Bouncy Castle Cryptography API")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("The Legion of the Bouncy Castle Inc.")]
-[assembly: AssemblyProduct("Bouncy Castle for .NET")]
-[assembly: AssemblyCopyright("Copyright (C) 2000-2022")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-//
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers
-// by using the '*' as shown below:
-
-[assembly: AssemblyVersion("1.9.0.0")]
-[assembly: AssemblyFileVersion("1.9.21290.1")]
-[assembly: AssemblyInformationalVersion("1.9.0")]
-
-//
-// In order to sign your assembly you must specify a key to use. Refer to the
-// Microsoft .NET Framework documentation for more information on assembly signing.
-//
-// Use the attributes below to control which key is used for signing.
-//
-// Notes:
-//   (*) If no key is specified, the assembly is not signed.
-//   (*) KeyName refers to a key that has been installed in the Crypto Service
-//       Provider (CSP) on your machine. KeyFile refers to a file which contains
-//       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the
-//       following processing occurs:
-//       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key
-//           in the KeyFile is installed into the CSP and used.
-//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
-//       When specifying the KeyFile, the location of the KeyFile should be
-//       relative to the project output directory which is
-//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile
-//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
-//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
-//       documentation for more information on this.
-//
-[assembly: AssemblyDelaySign(false)]
-#if STRONG_NAME
-[assembly: AssemblyKeyFile(@"../BouncyCastle.snk")]
-#endif
-
 [assembly: CLSCompliant(true)]
 #if !PORTABLE
 [assembly: ComVisible(false)]
@@ -117,3 +58,23 @@ internal class AssemblyInfo
         }
     }
 }
+
+#if NET40
+namespace System.Reflection
+{
+    [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
+    internal sealed class AssemblyMetadataAttribute : Attribute
+    {
+        public AssemblyMetadataAttribute(string key, string value)
+        {
+            Key = key;
+            Value = value;
+        }
+
+        public string Key { get; }
+
+        public string Value { get; }
+    }
+}
+
+#endif
diff --git a/crypto/src/BouncyCastle.Crypto.csproj b/crypto/src/BouncyCastle.Crypto.csproj
new file mode 100644
index 000000000..d2cd09129
--- /dev/null
+++ b/crypto/src/BouncyCastle.Crypto.csproj
@@ -0,0 +1,30 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>netstandard2.0;net40</TargetFrameworks>
+    <RootNamespace>Org.BouncyCastle</RootNamespace>
+    <AssemblyOriginatorKeyFile>..\..\BouncyCastle.snk</AssemblyOriginatorKeyFile>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
+    <DefineConstants />
+    <GenerateDocumentationFile>true</GenerateDocumentationFile>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1">
+      <PrivateAssets>all</PrivateAssets>
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+    </PackageReference>
+    <PackageReference Include="Nerdbank.GitVersioning" Version="3.5.107">
+      <PrivateAssets>all</PrivateAssets>
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+    </PackageReference>
+  </ItemGroup>
+
+</Project>
diff --git a/crypto/src/asn1/DerGeneralizedTime.cs b/crypto/src/asn1/DerGeneralizedTime.cs
index 1efa792df..f5ef3f372 100644
--- a/crypto/src/asn1/DerGeneralizedTime.cs
+++ b/crypto/src/asn1/DerGeneralizedTime.cs
@@ -181,18 +181,7 @@ namespace Org.BouncyCastle.Asn1
             char sign = '+';
             DateTime time = ToDateTime();
 
-#if PORTABLE
-            long offset = time.Ticks - time.ToUniversalTime().Ticks;
-            if (offset < 0)
-            {
-                sign = '-';
-                offset = -offset;
-            }
-            int hours = (int)(offset / TimeSpan.TicksPerHour);
-            int minutes = (int)(offset / TimeSpan.TicksPerMinute) % 60;
-#else
-            // Note: GetUtcOffset incorporates Daylight Savings offset
-            TimeSpan offset =  TimeZone.CurrentTimeZone.GetUtcOffset(time);
+            TimeSpan offset = TimeZoneInfo.Local.GetUtcOffset(time);
             if (offset.CompareTo(TimeSpan.Zero) < 0)
             {
                 sign = '-';
@@ -200,7 +189,6 @@ namespace Org.BouncyCastle.Asn1
             }
             int hours = offset.Hours;
             int minutes = offset.Minutes;
-#endif
 
             return "GMT" + sign + Convert(hours) + ":" + Convert(minutes);
         }