@@ -10,6 +10,7 @@ namespace Cfd
10
10
/// </summary>
11
11
public class BlindFactor
12
12
{
13
+ public const uint Size = 32 ;
13
14
private readonly string hexString ;
14
15
15
16
/// <summary>
@@ -26,9 +27,31 @@ public BlindFactor()
26
27
/// <param name="blindFactorHex">blinder hex</param>
27
28
public BlindFactor ( string blindFactorHex )
28
29
{
30
+ if ( string . IsNullOrEmpty ( blindFactorHex ) )
31
+ {
32
+ hexString = "0000000000000000000000000000000000000000000000000000000000000000" ;
33
+ }
34
+ else if ( ( blindFactorHex == null ) || ( blindFactorHex . Length != Size * 2 ) )
35
+ {
36
+ CfdCommon . ThrowError ( CfdErrorCode . IllegalArgumentError , "Failed to blindFactor size." ) ;
37
+ }
29
38
hexString = blindFactorHex ;
30
39
}
31
40
41
+ /// <summary>
42
+ /// Constructor. (valid blind factor)
43
+ /// </summary>
44
+ /// <param name="blindFactorHex">blinder</param>
45
+ public BlindFactor ( byte [ ] bytes )
46
+ {
47
+ if ( ( bytes == null ) || ( bytes . Length != Size ) )
48
+ {
49
+ CfdCommon . ThrowError ( CfdErrorCode . IllegalArgumentError , "Failed to blindFactor size." ) ;
50
+ }
51
+ var blindFactorBytes = CfdCommon . ReverseBytes ( bytes ) ;
52
+ this . hexString = StringUtil . FromBytes ( blindFactorBytes ) ;
53
+ }
54
+
32
55
/// <summary>
33
56
/// blinder hex string.
34
57
/// </summary>
@@ -37,5 +60,15 @@ public string ToHexString()
37
60
{
38
61
return hexString ;
39
62
}
63
+
64
+ /// <summary>
65
+ /// blinder byte array.
66
+ /// </summary>
67
+ /// <returns>blinder byte array</returns>
68
+ public byte [ ] GetBytes ( )
69
+ {
70
+ var blindFactorBytes = StringUtil . ToBytes ( hexString ) ;
71
+ return CfdCommon . ReverseBytes ( blindFactorBytes ) ;
72
+ }
40
73
}
41
74
}
0 commit comments