Skip to content

Commit bfc477b

Browse files
committed
added dedicated static class with various PEM header options and methods to generate appropriate PEM header and footer
1 parent e425924 commit bfc477b

File tree

1 file changed

+182
-0
lines changed

1 file changed

+182
-0
lines changed

Asn1Parser/PemHeaders.cs

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
using System;
2+
3+
namespace SysadminsLV.Asn1Parser {
4+
class PemHeaders {
5+
public const String PEM_HEADER_CERT = "CERTIFICATE";
6+
public const String PEM_HEADER_CERT_TRUSTED = "TRUSTED CERTIFICATE";
7+
public const String PEM_HEADER_REQ_NEW = "NEW CERTIFICATE REQUEST";
8+
public const String PEM_HEADER_REQ = "CERTIFICATE REQUEST";
9+
public const String PEM_HEADER_CRL = "X509 CRL";
10+
public const String PEM_HEADER_EVP_PKEY = "ANY PRIVATE KEY";
11+
public const String PEM_HEADER_PUBLIC = "PUBLIC KEY";
12+
public const String PEM_HEADER_RSA = "RSA PRIVATE KEY";
13+
public const String PEM_HEADER_RSA_PUBLIC = "RSA PUBLIC KEY";
14+
public const String PEM_HEADER_DSA = "DSA PRIVATE KEY";
15+
public const String PEM_HEADER_DSA_PUBLIC = "DSA PUBLIC KEY";
16+
public const String PEM_HEADER_PKCS7 = "PKCS7";
17+
public const String PEM_HEADER_PKCS7_SIGNED = "PKCS #7 SIGNED DATA";
18+
public const String PEM_HEADER_PKCS8 = "ENCRYPTED PRIVATE KEY";
19+
public const String PEM_HEADER_PKCS8_INF = "PRIVATE KEY";
20+
public const String PEM_HEADER_DH_PARAMS = "DH PARAMETERS";
21+
public const String PEM_HEADER_DHX_PARAMS = "X9.42 DH PARAMETERS";
22+
public const String PEM_HEADER_SSL_SESSION = "SSL SESSION PARAMETERS";
23+
public const String PEM_HEADER_DSA_PARAMS = "DSA PARAMETERS";
24+
public const String PEM_HEADER_ECDSA_PUBLIC = "ECDSA PUBLIC KEY";
25+
public const String PEM_HEADER_EC_PARAMS = "EC PARAMETERS";
26+
public const String PEM_HEADER_EC_PRIVATE_KEY = "EC PRIVATE KEY";
27+
public const String PEM_HEADER_PARAMS = "PARAMETERS";
28+
public const String PEM_HEADER_CMS = "CMS";
29+
30+
public static String GetHeader(String headerName) {
31+
return $"-----BEGIN {headerName}-----";
32+
}
33+
public static String GetFooter(String headerName) {
34+
return $"-----END {headerName}-----";
35+
}
36+
37+
public static String GetCertHeader() {
38+
return GetHeader(PEM_HEADER_CERT);
39+
}
40+
public static String GetCertFooter() {
41+
return GetFooter(PEM_HEADER_CERT);
42+
}
43+
public static String GetTrustedCertHeader() {
44+
return GetHeader(PEM_HEADER_CERT_TRUSTED);
45+
}
46+
public static String GetTrustedCertFooter() {
47+
return GetFooter(PEM_HEADER_CERT_TRUSTED);
48+
}
49+
public static String GetCertReqNewHeader() {
50+
return GetHeader(PEM_HEADER_REQ_NEW);
51+
}
52+
public static String GetCertReqNewFooter() {
53+
return GetFooter(PEM_HEADER_REQ_NEW);
54+
}
55+
public static String GetCertReqHeader() {
56+
return GetHeader(PEM_HEADER_REQ);
57+
}
58+
public static String GetCertReqFooter() {
59+
return GetFooter(PEM_HEADER_REQ);
60+
}
61+
public static String GetCrlHeader() {
62+
return GetHeader(PEM_HEADER_CRL);
63+
}
64+
public static String GetCrlFooter() {
65+
return GetFooter(PEM_HEADER_CRL);
66+
}
67+
public static String GetEvpPrivateHeader() {
68+
return GetHeader(PEM_HEADER_EVP_PKEY);
69+
}
70+
public static String GetEvpPrivateFooter() {
71+
return GetFooter(PEM_HEADER_EVP_PKEY);
72+
}
73+
public static String GetPublicKeyHeader() {
74+
return GetHeader(PEM_HEADER_PUBLIC);
75+
}
76+
public static String GetPublicKeyFooter() {
77+
return GetFooter(PEM_HEADER_PUBLIC);
78+
}
79+
public static String GetRsaPrivateKeyHeader() {
80+
return GetHeader(PEM_HEADER_RSA);
81+
}
82+
public static String GetRsaPrivateKeyFooter() {
83+
return GetFooter(PEM_HEADER_RSA);
84+
}
85+
public static String GetRsaPublicKeyHeader() {
86+
return GetHeader(PEM_HEADER_RSA_PUBLIC);
87+
}
88+
public static String GetRsaPublicKeyFooter() {
89+
return GetFooter(PEM_HEADER_RSA_PUBLIC);
90+
}
91+
public static String GetDsaPrivateKeyHeader() {
92+
return GetHeader(PEM_HEADER_DSA);
93+
}
94+
public static String GetDsaPrivateKeyFooter() {
95+
return GetFooter(PEM_HEADER_DSA);
96+
}
97+
public static String GetDsaPublicKeyHeader() {
98+
return GetHeader(PEM_HEADER_DSA_PUBLIC);
99+
}
100+
public static String GetDsaPublicKeyFooter() {
101+
return GetFooter(PEM_HEADER_DSA_PUBLIC);
102+
}
103+
public static String GetPkcs7Header() {
104+
return GetHeader(PEM_HEADER_PKCS7);
105+
}
106+
public static String GetPkcs7Footer() {
107+
return GetFooter(PEM_HEADER_PKCS7);
108+
}
109+
public static String GetPkcs7SignedHeader() {
110+
return GetHeader(PEM_HEADER_PKCS7_SIGNED);
111+
}
112+
public static String GetPkcs7SignedFooter() {
113+
return GetFooter(PEM_HEADER_PKCS7_SIGNED);
114+
}
115+
public static String GetPkcs8EncryptedHeader() {
116+
return GetHeader(PEM_HEADER_PKCS8);
117+
}
118+
public static String GetPkcs8EncryptedFooter() {
119+
return GetFooter(PEM_HEADER_PKCS8);
120+
}
121+
public static String GetPkcs8Header() {
122+
return GetHeader(PEM_HEADER_PKCS8_INF);
123+
}
124+
public static String GetPkcs8Footer() {
125+
return GetFooter(PEM_HEADER_PKCS8_INF);
126+
}
127+
public static String GetDHParamsHeader() {
128+
return GetHeader(PEM_HEADER_DH_PARAMS);
129+
}
130+
public static String GetDHParamsFooter() {
131+
return GetFooter(PEM_HEADER_DH_PARAMS);
132+
}
133+
public static String GetDHXParamsHeader() {
134+
return GetHeader(PEM_HEADER_DHX_PARAMS);
135+
}
136+
public static String GetDHXParamsFooter() {
137+
return GetFooter(PEM_HEADER_DHX_PARAMS);
138+
}
139+
public static String GetSslSessionHeader() {
140+
return GetHeader(PEM_HEADER_SSL_SESSION);
141+
}
142+
public static String GetSslSessionFooter() {
143+
return GetFooter(PEM_HEADER_SSL_SESSION);
144+
}
145+
public static String GetDsaParamsHeader() {
146+
return GetHeader(PEM_HEADER_DSA_PARAMS);
147+
}
148+
public static String GetDsaParamsFooter() {
149+
return GetFooter(PEM_HEADER_DSA_PARAMS);
150+
}
151+
public static String GetECDsaPublicKeyHeader() {
152+
return GetHeader(PEM_HEADER_ECDSA_PUBLIC);
153+
}
154+
public static String GetECDsaPublicKeyFooter() {
155+
return GetFooter(PEM_HEADER_ECDSA_PUBLIC);
156+
}
157+
public static String GetEcParamsHeader() {
158+
return GetHeader(PEM_HEADER_EC_PARAMS);
159+
}
160+
public static String GetEcParamsFooter() {
161+
return GetFooter(PEM_HEADER_EC_PARAMS);
162+
}
163+
public static String GetEcPrivateKeyHeader() {
164+
return GetHeader(PEM_HEADER_EC_PRIVATE_KEY);
165+
}
166+
public static String GetEcPrivateKeyFooter() {
167+
return GetFooter(PEM_HEADER_EC_PRIVATE_KEY);
168+
}
169+
public static String GetParamsHeader() {
170+
return GetHeader(PEM_HEADER_PARAMS);
171+
}
172+
public static String GetParamsFooter() {
173+
return GetFooter(PEM_HEADER_PARAMS);
174+
}
175+
public static String GetCmsHeader() {
176+
return GetHeader(PEM_HEADER_CMS);
177+
}
178+
public static String GetCmsFooter() {
179+
return GetFooter(PEM_HEADER_CMS);
180+
}
181+
}
182+
}

0 commit comments

Comments
 (0)