forked from maxlaverse/kubernetes-credentials-plugin
-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathUtils.java
48 lines (39 loc) · 1.72 KB
/
Utils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package org.jenkinsci.plugins.kubernetes.credentials;
import java.nio.charset.StandardCharsets;
import java.security.Key;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import org.apache.commons.codec.binary.Base64;
public abstract class Utils {
public static String wrapWithMarker(String begin, String end, String encodedBody) {
return new StringBuilder(begin).append("\n")
.append(encodedBody).append("\n")
.append(end)
.toString();
}
public static String wrapCertificate(String certData) {
String BEGIN_CERTIFICATE = "-----BEGIN CERTIFICATE-----";
String END_CERTIFICATE = "-----END CERTIFICATE-----";
if (!certData.startsWith(BEGIN_CERTIFICATE)) {
return wrapWithMarker(BEGIN_CERTIFICATE, END_CERTIFICATE, certData);
}
return certData;
}
public static String wrapPrivateKey(String keyData) {
String BEGIN_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----";
String END_PRIVATE_KEY = "-----END PRIVATE KEY-----";
if (!keyData.startsWith(BEGIN_PRIVATE_KEY)) {
return wrapWithMarker(BEGIN_PRIVATE_KEY, END_PRIVATE_KEY, keyData);
}
return keyData;
}
public static String encodeBase64(String s) {
return Base64.encodeBase64String(s.getBytes(StandardCharsets.UTF_8));
}
public static String encodeCertificate(Certificate certificate) throws CertificateEncodingException {
return encodeBase64(wrapCertificate(Base64.encodeBase64String(certificate.getEncoded())));
}
public static String encodeKey(Key key) {
return encodeBase64(wrapPrivateKey(Base64.encodeBase64String(key.getEncoded())));
}
}