From 2e2901ceac1291fab8c2ed9828bceded00440a16 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Thu, 23 Jun 2022 17:54:55 +0700 Subject: New build organization - TargetFrameworks netstandard2.0;net40 --- crypto/src/AssemblyInfo.cs | 81 +++++++++-------------------------- crypto/src/BouncyCastle.Crypto.csproj | 30 +++++++++++++ crypto/src/asn1/DerGeneralizedTime.cs | 14 +----- 3 files changed, 52 insertions(+), 73 deletions(-) create mode 100644 crypto/src/BouncyCastle.Crypto.csproj (limited to 'crypto/src') 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\. 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 @@ + + + + netstandard2.0;net40 + Org.BouncyCastle + ..\..\BouncyCastle.snk + true + + + + DEBUG;TRACE + + + + + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + 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); } -- cgit 1.5.1