Skip to content

Commit 65f98c5

Browse files
authored
Merge pull request #175
Including README.md in the NuGet Packages Improved README for better impression of the project
2 parents 7c9ab00 + 1e55362 commit 65f98c5

File tree

4 files changed

+93
-27
lines changed

4 files changed

+93
-27
lines changed

README.md

Lines changed: 87 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- Copyright 2021 Yubico AB
1+
<!-- Copyright 2024 Yubico AB
22
33
Licensed under the Apache License, Version 2.0 (the "License");
44
you may not use this file except in compliance with the License.
@@ -21,42 +21,103 @@ limitations under the License. -->
2121
2222
# .NET YubiKey SDK
2323

24-
This is a cross-platform, all encompassing SDK for the YubiKey aimed at large to mid-sized enterprise
25-
customers. This version is written against .NET Core, and will eventually include bindings to languages
26-
outside the direct .NET ecosystem.
24+
Enterprise-grade cross-platform SDK for YubiKey integration, built on .NET.
2725

28-
## SDK Support
29-
The SDK is targetting net47, netstandard2.0 and netstandard2.1. This means the SDK can be loaded in NET Framework, NET6 and upwards.
26+
## Table of Contents
27+
- [Quick Start](#quick-start)
28+
- [Documentation](#documentation)
29+
- [SDK Support](#sdk-support)
30+
- [SDK Packages](#sdk-packages)
31+
- [Project Structure](#project-structure)
32+
- [Contributing](#contributing)
33+
- [Security](#security)
34+
35+
## Quick Start
36+
37+
### Installation
38+
```bash
39+
dotnet add package Yubico.YubiKey
40+
```
41+
42+
### Basic Usage
43+
```csharp
44+
using Yubico.YubiKey;
45+
46+
// Chooses the first YubiKey found on the computer.
47+
IYubiKeyDevice? SampleChooseYubiKey()
48+
{
49+
IEnumerable<IYubiKeyDevice> list = YubiKeyDevice.FindAll();
50+
return list.First();
51+
}
52+
```
3053

3154
## Documentation
3255

33-
The public documentation for this project is located
34-
at [https://docs.yubico.com/yesdk/](https://docs.yubico.com/yesdk/).
35-
Here you can find both API reference and a user's manual that describes the concepts that this SDK exposes.
56+
📚 Official documentation: [docs.yubico.com/yesdk](https://docs.yubico.com/yesdk/)
57+
- User Manual
58+
- API Reference
59+
60+
## SDK Support
61+
62+
Supported Target Frameworks:
63+
- .NET Framework 4.7
64+
- .NET Standard 2.1
65+
- .NET 6 and above
66+
67+
## SDK Packages
3668

37-
## Project structure
69+
### Public Assemblies
3870

39-
The root of this repository contains the various projects that make up the SDK. Inside each project
40-
folder, you will find:
71+
#### Yubico.YubiKey
72+
Primary assembly containing all classes and types needed for YubiKey interaction.
4173

42-
- docs - Supplementary documentation content for the SDK's API documentation.
43-
- examples - Example code demonstrating various capabilities of the SDK.
44-
- src - All source code that makes up the project.
45-
- tests - Unit and integration tests for the project.
74+
#### Yubico.Core
75+
Platform abstraction layer (PAL) providing:
76+
- OS-specific functionality abstraction
77+
- Device enumeration
78+
- Utility classes for various encoding/decoding operations:
79+
- Base16
80+
- Base32
81+
- Tag-Length-Value (BER Encoded TLV)
82+
- ModHex
83+
84+
### Internal Assemblies
85+
86+
#### Yubico.DotNetPolyfills
87+
> ⚠️ **Not for public use**
88+
> Backports BCL features needed by the SDK.
89+
90+
#### Yubico.NativeShims
91+
> ⚠️ **Not for public use**
92+
> 🔧 **Unmanaged Library**
93+
> Provides stable ABI for P/Invoke operations in Yubico.Core.
94+
95+
## Project Structure
96+
97+
Repository organization:
98+
- 📁 `docs/` - API documentation and supplementary content
99+
- 📁 `examples/` - Sample code and demonstrations
100+
- 📁 `src/` - Source code for all projects
101+
- 📁 `tests/` - Unit and integration tests
46102

47103
## Contributing
48104

49-
Please read the [Contributor's Guide](./CONTRIBUTING.md) and [Getting started](./contributordocs/getting-started.md)
50-
pages before opening a pull request on this project.
105+
1. Read the [Contributor's Guide](./CONTRIBUTING.md)
106+
2. Review [Getting Started](./contributordocs/getting-started.md)
107+
3. Submit your Pull Request
108+
109+
### Building the Project
110+
111+
Prerequisites:
112+
1. Install required tools (see [Getting Started](./contributordocs/getting-started.md))
113+
2. Load `Yubico.NET.SDK.sln` into your IDE.
114+
3. Build solution
115+
51116

52-
### Building
117+
## Security
53118

54-
Read the [Getting started](./contributordocs/getting-started.md) page to understand the prerequisites needed
55-
to build. Once those have been installed, you should be able to load the Yubico.NET.SDK.sln file and build.
119+
For security concerns, please see our [Security Policy](./SECURITY.md).
56120

57-
Note that it is also possible to build the DocFX output at the same time as building the libraries. However,
58-
that is not done by default.
121+
---
59122

60-
If you want to build the DocFX output when you build the libraries using Visual Studio, open the Visual
61-
Studio solution file, and open `Build:Configuration Manager...`. In the resulting window, under
62-
`Active solution configuration:` is a drop-down menu. Select `ReleaseWithDocs`.
123+
📫 Need help? [Create an issue](https://github.com/Yubico/Yubico.NET.SDK/issues/new/choose)

Yubico.Core/src/Yubico.Core.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ limitations under the License. -->
4141
Yubico.Core is a support library used by other .NET Yubico libraries. You should likely never need to consume this package directly, as it will be included with other libraries.
4242
</Description>
4343
<PackageIcon>yubico-circle-y-mark.png</PackageIcon>
44+
<PackageReadmeFile>README.md</PackageReadmeFile>
4445
<PublishRepositoryUrl>true</PublishRepositoryUrl>
4546
<EmbedUntrackedSources>true</EmbedUntrackedSources>
4647
<IncludeSymbols>true</IncludeSymbols>
@@ -72,6 +73,7 @@ limitations under the License. -->
7273
</EmbeddedResource>
7374

7475
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="" />
76+
<None Include="..\..\README.md" Pack="true" PackagePath="" />
7577
<None Include="..\..\yubico-circle-y-mark.png" Pack="true" PackagePath="" />
7678
<None Include="..\..\Yubico.NET.SDK.snk">
7779
<Link>Yubico.NET.SDK.snk</Link>

Yubico.DotNetPolyfills/src/Yubico.DotNetPolyfills.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ limitations under the License. -->
3030

3131
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
3232
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
33+
<PackageReadmeFile>README.md</PackageReadmeFile>
3334
<PublishRepositoryUrl>true</PublishRepositoryUrl>
3435
<EmbedUntrackedSources>true</EmbedUntrackedSources>
3536
<IncludeSymbols>true</IncludeSymbols>
@@ -66,6 +67,7 @@ limitations under the License. -->
6667

6768
<ItemGroup>
6869
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="" />
70+
<None Include="..\..\README.md" Pack="true" PackagePath="" />
6971
</ItemGroup>
7072

7173
</Project>

Yubico.YubiKey/src/Yubico.YubiKey.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ limitations under the License. -->
4141
Yubico.YubiKey is the official .NET library for integrating with the YubiKey hardware authenticator. This library supports both macOS and Windows operating systems.
4242
</Description>
4343
<PackageIcon>yubico-circle-y-mark.png</PackageIcon>
44+
<PackageReadmeFile>README.md</PackageReadmeFile>
4445
<PublishRepositoryUrl>true</PublishRepositoryUrl>
4546
<EmbedUntrackedSources>true</EmbedUntrackedSources>
4647
<IncludeSymbols>true</IncludeSymbols>
@@ -100,8 +101,8 @@ limitations under the License. -->
100101
<LastGenOutput>ResponseStatusMessages.Designer.cs</LastGenOutput>
101102
<CustomToolNamespace>Yubico.YubiKey</CustomToolNamespace>
102103
</EmbeddedResource>
103-
104104
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="" />
105+
<None Include="..\..\README.md" Pack="true" PackagePath="" />
105106
<None Include="..\..\yubico-circle-y-mark.png" Pack="true" PackagePath="" />
106107
<None Include="..\..\Yubico.NET.SDK.snk">
107108
<Link>Yubico.NET.SDK.snk</Link>

0 commit comments

Comments
 (0)