Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
HmacSha256.cs
1
using
System.Security.Cryptography;
2
using
System.Text;
3
using
Waher.Content
;
4
5
namespace
Waher.Security.JWS
6
{
10
public
class
HmacSha256
:
HmacSha
11
{
12
private
HMACSHA256 hmacSHA256;
13
17
public
HmacSha256
()
18
{
19
using
(RandomNumberGenerator Rnd = RandomNumberGenerator.Create())
20
{
21
byte
[] Secret =
new
byte
[32];
22
Rnd.GetBytes(Secret);
23
24
this.Init(Secret);
25
}
26
}
27
32
public
HmacSha256
(
byte
[] Secret)
33
{
34
this.Init(Secret);
35
}
36
37
private
void
Init(
byte
[] Secret)
38
{
39
this.hmacSHA256 =
new
HMACSHA256(Secret);
40
}
41
43
public
override
void
Dispose
()
44
{
45
if
(!(this.hmacSHA256 is
null
))
46
{
47
this.hmacSHA256.Dispose();
48
this.hmacSHA256 =
null
;
49
}
50
}
51
55
public
override
string
Name
=>
"HS256"
;
56
63
public
override
string
Sign
(
string
HeaderEncoded,
string
PayloadEncoded)
64
{
65
byte
[] SignatureBin;
66
string
Token = HeaderEncoded +
"."
+ PayloadEncoded;
67
byte
[] TokenBin = Encoding.ASCII.GetBytes(Token);
68
69
lock (this.hmacSHA256)
70
{
71
SignatureBin = this.hmacSHA256.ComputeHash(TokenBin);
72
}
73
74
return
Base64Url
.
Encode
(SignatureBin);
75
}
76
}
77
}
Waher.Content.Base64Url
Static class that does BASE64URL encoding (using URL and filename safe alphabet), as defined in RFC46...
Definition:
Base64Url.cs:11
Waher.Content.Base64Url.Encode
static string Encode(byte[] Data)
Converts a binary block of data to a Base64URL-encoded string.
Definition:
Base64Url.cs:48
Waher.Security.JWS.HmacSha256
HMAC SHA-256 algorithm.
Definition:
HmacSha256.cs:11
Waher.Security.JWS.HmacSha256.Sign
override string Sign(string HeaderEncoded, string PayloadEncoded)
Signs data.
Definition:
HmacSha256.cs:63
Waher.Security.JWS.HmacSha256.Dispose
override void Dispose()
IDisposable.Dispose
Definition:
HmacSha256.cs:43
Waher.Security.JWS.HmacSha256.HmacSha256
HmacSha256()
HMAC SHA-256 algorithm.
Definition:
HmacSha256.cs:17
Waher.Security.JWS.HmacSha256.Name
override string Name
Short name for algorithm.
Definition:
HmacSha256.cs:55
Waher.Security.JWS.HmacSha256.HmacSha256
HmacSha256(byte[] Secret)
HMAC SHA-256 algorithm.
Definition:
HmacSha256.cs:32
Waher.Security.JWS.HmacSha
Abstract base class for HMAC SHA JWS algorithms.
Definition:
HmacSha.cs:7
Waher.Content
Definition:
Array.cs:6
Waher.Security.JWS
Definition:
HS256.cs:9
IoTGateway
Security
Waher.Security.JWS
HmacSha256.cs
Generated by
1.9.5