1- # APEX API C# Security Utility
1+ # APEX API C$ Security Utility
22[ ![ Build Status] ( https://travis-ci.org/GovTechSG/csharp-apex-api-security.svg?branch=master )] ( https://travis-ci.org/GovTechSG/csharp-apex-api-security )
33
44A C# helper utility that construct and sign HTTP Authorization header scheme for API authentication and verification
55
6+
7+ ## Table of Contents
8+ - [ APEX API C# Security Utility] ( #apex-api-c#-security-utility )
9+ - [ Getting Started] ( #getting-started )
10+ * [ Prerequisites] ( #prerequisites )
11+ + [ Installing NUnit Testing Framework Adapter] ( installing-nunittestadapter )
12+ * [ APIList Interface] ( #using-the-apilist-class )
13+ + [ Generate QueryString] ( #generate-querystring )
14+ + [ Generate FormData] ( #generate-formdata )
15+ * [ Constructing HMAC256 L1 Authorization Header] ( #how-to-generate-the-hmac256-l1-authorization-header )
16+ * [ Constructing RSA256 L2 Authorization Header] ( #how-to-generate-the-rsa256-l2-authorization-header )
17+ - [ Release] ( #release )
18+ - [ Contributing] ( #contributing )
19+ - [ License] ( #license )
20+ - [ References] ( #references )
21+
22+
623## Getting Started
724
825### Prerequisites
@@ -12,7 +29,9 @@ A C# helper utility that construct and sign HTTP Authorization header scheme for
1229
1330Make sure that all unit test cases are passed before using the library.
1431
15- #### Installing NUnitTestAdapter ** (Importabt : Windows Only)**
32+ #### Installing NUnitTestAdapter
33+
34+ ** (Important : Windows Only)**
1635
1736For windows users , NUnitTestAdapter have to be installed before you can run the test cases succcessfully.
1837
@@ -28,7 +47,7 @@ For windows users , NUnitTestAdapter have to be installed before you can run the
2847### Using the ApiList Class
2948The ApiUtilLib Library provide the utility class ApiList to construct request Query String and Form Data.
3049
31- ##### Using ApiList class to generate the query string
50+ #### Generate QueryString
3251```
3352 var queryParam = new ApiUtilLib.ApiList();
3453
@@ -42,7 +61,7 @@ The ApiUtilLib Library provide the utility class ApiList to construct request Qu
4261 // https://example.com/resource/?clientId=1256-1231-4598&accountStatus=active&txnDate=2017-09-29
4362```
4463
45- ##### Using ApiList class to generate the Form Data
64+ #### Generate FormData
4665```
4766 var formData = new ApiUtilLib.ApiList();
4867
@@ -54,7 +73,7 @@ The ApiUtilLib Library provide the utility class ApiList to construct request Qu
5473 // phoneNo=%2B1+1234+4567+890&street=Hellowood+Street&state=AP
5574```
5675
57- ### How to Generate the L1 Authorization Header
76+ ### How to Generate the HMAC256 L1 Authorization Header
5877```
5978public static void L1Sample()
6079{
@@ -105,7 +124,7 @@ public static void L1Sample()
105124}
106125```
107126
108- ### How to Generate the L2 Authorization Header
127+ ### How to Generate the RSA256 L2 Authorization Header
109128```
110129public static void L2Sample()
111130{
@@ -167,17 +186,16 @@ static string GetLocalPath(string relativeFileName)
167186}
168187```
169188
170- ## Contributing
189+ ### Release
190+ + See [ CHANGELOG.md] ( CHANGELOG.md ) .
171191
172- Easy as 1-2-3:
192+ ### Contributing
193+ + For more information about contributing PRs and issues, see [ CONTRIBUTING.md] ( https://github.com/GovTechSG/csharp-apex-api-security/blob/master/.github/CONTRIBUTING.md ) .
173194
174- + Step 1: Branch off from ``` development ``` and work on your feature or hotfix.
175- + Step 2: Update the changelog.
176- + Step 3: Create a pull request when you're done.
195+ ### License
196+ [ MIT LICENSE ] ( https://github.com/GovTechSG/csharp-apex-api-security/blob/master/LICENSE )
177197
178- ## References:
198+ ### References
179199+ [ Akana API Consumer Security] ( http://docs.akana.com/ag/cm_policies/using_api_consumer_app_sec_policy.htm )
180200+ [ RSA and HMAC Request Signing Standard] ( http://tools.ietf.org/html/draft-cavage-http-signatures-05 )
181201
182- ## Releases
183- + Check out latest changes at CHANGELOG.md
0 commit comments