mirror of
https://github.com/nsacyber/HIRS.git
synced 2025-01-18 02:39:56 +00:00
Merge pull request #702 from nsacyber/v3_issue-checkstyle
[#643] Checkstyles implementation
This commit is contained in:
commit
07495dc966
@ -2,6 +2,7 @@ plugins {
|
||||
id 'java'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'com.google.protobuf' version '0.9.4'
|
||||
id 'checkstyle'
|
||||
}
|
||||
|
||||
java {
|
||||
@ -57,7 +58,28 @@ dependencies {
|
||||
implementation libs.lombok
|
||||
annotationProcessor libs.lombok
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
checkstyleTest {
|
||||
source ='src/test/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = 'com.google.protobuf:protoc:3.24.3'
|
||||
|
@ -5,6 +5,7 @@ plugins {
|
||||
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
||||
id 'org.springframework.boot' version '3.0.6'
|
||||
id 'io.spring.dependency-management' version '1.1.0'
|
||||
id 'checkstyle'
|
||||
}
|
||||
|
||||
// Get version from main project gradle
|
||||
@ -59,6 +60,29 @@ dependencies {
|
||||
testImplementation 'org.hsqldb:hsqldb'
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
checkstyleTest {
|
||||
source ='src/test/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
||||
|
||||
<suppressions>
|
||||
<suppress checks="MagicNumber" files=".*[/\\]src[/\\]test[/\\]+" />
|
||||
</suppressions>
|
@ -1,6 +1,6 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
// id 'checkstyle'
|
||||
id 'checkstyle'
|
||||
}
|
||||
|
||||
java {
|
||||
@ -28,17 +28,29 @@ test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
//ext.configDir = new File(projectDir, 'config')
|
||||
//ext.checkstyleConfigDir = "$configDir/checkstyle"
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
checkstyleTest {
|
||||
source ='src/test/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
|
||||
//checkstyle {
|
||||
// toolVersion = '5.7'
|
||||
// configFile = checkstyleConfigFile
|
||||
// configProperties.put('basedir', checkstyleConfigDir)
|
||||
// ignoreFailures = false
|
||||
// showViolations = true
|
||||
//}
|
||||
//
|
||||
//publishing {
|
||||
// publications {
|
||||
// maven(MavenPublication) {
|
||||
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
||||
|
||||
<suppressions>
|
||||
<suppress checks="MagicNumber" files=".*[/\\]src[/\\]test[/\\]+" />
|
||||
</suppressions>
|
@ -1,5 +1,6 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'checkstyle'
|
||||
}
|
||||
// Get version from main project gradle
|
||||
def packVersion = properties.get("packageVersion");
|
||||
@ -54,6 +55,29 @@ dependencies {
|
||||
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
checkstyleTest {
|
||||
source ='src/test/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
@ -59,11 +59,14 @@ public class UefiBootVariable {
|
||||
System.arraycopy(bootVar, UefiConstants.OFFSET_6, blob, 0, blobLength);
|
||||
int descLength = getChar16ArrayLength(blob);
|
||||
byte[] desc = new byte[descLength * UefiConstants.SIZE_2];
|
||||
System.arraycopy(bootVar, UefiConstants.OFFSET_6, desc, 0, descLength * UefiConstants.SIZE_2);
|
||||
description = new String(UefiDevicePath.convertChar16tobyteArray(desc), StandardCharsets.UTF_8);
|
||||
System.arraycopy(bootVar, UefiConstants.OFFSET_6, desc, 0,
|
||||
descLength * UefiConstants.SIZE_2);
|
||||
description = new String(UefiDevicePath.convertChar16tobyteArray(desc),
|
||||
StandardCharsets.UTF_8);
|
||||
// Data following the Description should be EFI Partition Data (EFI_DEVICE_PATH_PROTOCOL)
|
||||
int devPathLength = blobLength;
|
||||
int devPathOffset = UefiConstants.OFFSET_6 + descLength; //attributes+bloblength+desc+length+2
|
||||
//attributes+bloblength+desc+length+2
|
||||
int devPathOffset = UefiConstants.OFFSET_6 + descLength;
|
||||
byte[] devPath = new byte[devPathLength];
|
||||
System.arraycopy(bootVar, devPathOffset, devPath, 0, devPathLength);
|
||||
efiDevPath = new UefiDevicePath(devPath);
|
||||
@ -79,7 +82,8 @@ public class UefiBootVariable {
|
||||
*/
|
||||
public String toString() {
|
||||
StringBuilder bootInfo = new StringBuilder("Description = ");
|
||||
String bootVar = description.replaceAll("[^a-zA-Z_0-0\\s]", ""); // remove all non ascii chars
|
||||
// remove all non ascii chars
|
||||
String bootVar = description.replaceAll("[^a-zA-Z_0-0\\s]", "");
|
||||
bootInfo.append(bootVar + "\n" + efiDevPath.toString());
|
||||
return bootInfo.toString();
|
||||
}
|
||||
|
@ -255,15 +255,19 @@ public class UefiDevicePath {
|
||||
private String hardDriveSubType(final byte[] path, final int offset) {
|
||||
subType = "Partition Number = ";
|
||||
byte[] partnumber = new byte[UefiConstants.SIZE_4];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, partnumber, 0, UefiConstants.SIZE_4);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, partnumber,
|
||||
0, UefiConstants.SIZE_4);
|
||||
subType += HexUtils.byteArrayToHexString(partnumber);
|
||||
byte[] data = new byte[UefiConstants.SIZE_8];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_8 + offset, data, 0, UefiConstants.SIZE_8);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_8 + offset, data, 0,
|
||||
UefiConstants.SIZE_8);
|
||||
subType += " Partition Start = " + HexUtils.byteArrayToHexString(data);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_16 + offset, data, 0, UefiConstants.SIZE_8);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_16 + offset, data, 0,
|
||||
UefiConstants.SIZE_8);
|
||||
subType += " Partition Size = " + HexUtils.byteArrayToHexString(data);
|
||||
byte[] signature = new byte[UefiConstants.SIZE_16];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_24 + offset, signature, 0, UefiConstants.SIZE_16);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_24 + offset, signature, 0,
|
||||
UefiConstants.SIZE_16);
|
||||
subType += "\n Partition Signature = ";
|
||||
if (path[UefiConstants.OFFSET_41 + offset] == UefiConstants.DRIVE_SIG_NONE) {
|
||||
subType += "None";
|
||||
@ -299,7 +303,8 @@ public class UefiDevicePath {
|
||||
System.arraycopy(path, 2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
||||
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||
byte[] filePath = new byte[subTypeLength];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, filePath, 0, subTypeLength);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, filePath,
|
||||
0, subTypeLength);
|
||||
byte[] fileName = convertChar16tobyteArray(filePath);
|
||||
subType += new String(fileName, StandardCharsets.UTF_8);
|
||||
return subType;
|
||||
@ -318,10 +323,12 @@ public class UefiDevicePath {
|
||||
private String vendorSubType(final byte[] path, final int offset) {
|
||||
subType = "Vendor Subtype GUID = ";
|
||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes,
|
||||
0, UefiConstants.SIZE_2);
|
||||
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData, 0, UefiConstants.SIZE_16);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData,
|
||||
0, UefiConstants.SIZE_16);
|
||||
UefiGuid guid = new UefiGuid(guidData);
|
||||
subType += guid.toString() + " ";
|
||||
if (subTypeLength - UefiConstants.SIZE_16 > 0) {
|
||||
@ -348,10 +355,12 @@ public class UefiDevicePath {
|
||||
subType += " port = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_4]);
|
||||
subType += " interface = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_5]);
|
||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes,
|
||||
0, UefiConstants.SIZE_2);
|
||||
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||
byte[] usbData = new byte[subTypeLength];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, usbData, 0, subTypeLength);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, usbData,
|
||||
0, subTypeLength);
|
||||
// Todo add further USB processing ...
|
||||
return subType;
|
||||
}
|
||||
@ -370,10 +379,12 @@ public class UefiDevicePath {
|
||||
private String nvmSubType(final byte[] path, final int offset) {
|
||||
subType = "NVM Express Namespace = ";
|
||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_2 + offset, lengthBytes,
|
||||
0, UefiConstants.SIZE_2);
|
||||
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||
byte[] nvmData = new byte[subTypeLength];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, nvmData, 0, subTypeLength);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, nvmData,
|
||||
0, subTypeLength);
|
||||
subType += HexUtils.byteArrayToHexString(nvmData);
|
||||
return subType;
|
||||
}
|
||||
@ -385,6 +396,7 @@ public class UefiDevicePath {
|
||||
* Status bootHandler pointer, and description String pointer are ignored.
|
||||
*
|
||||
* @param path byte array holding the device path.
|
||||
* @param offset
|
||||
* @return String that represents the UEFI defined BIOS Device Type.
|
||||
*/
|
||||
private String biosDevicePath(final byte[] path, final int offset) {
|
||||
@ -436,7 +448,8 @@ public class UefiDevicePath {
|
||||
private String piwgFirmVolFile(final byte[] path, final int offset) {
|
||||
subType = "PIWG Firmware File ";
|
||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData, 0, UefiConstants.SIZE_16);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData,
|
||||
0, UefiConstants.SIZE_16);
|
||||
UefiGuid guid = new UefiGuid(guidData);
|
||||
subType += guid.toString();
|
||||
return subType;
|
||||
@ -455,7 +468,8 @@ public class UefiDevicePath {
|
||||
private String piwgFirmVolPath(final byte[] path, final int offset) {
|
||||
subType = "PIWG Firmware Volume ";
|
||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData, 0, UefiConstants.SIZE_16);
|
||||
System.arraycopy(path, UefiConstants.OFFSET_4 + offset, guidData,
|
||||
0, UefiConstants.SIZE_16);
|
||||
UefiGuid guid = new UefiGuid(guidData);
|
||||
subType += guid.toString();
|
||||
return subType;
|
||||
|
@ -65,6 +65,8 @@ public class UefiGuid {
|
||||
* Converts a GUID with a byte array to a RFC-1422 UUID object.
|
||||
* Assumes a MS format and converts to Big Endian format used by most others , including Linux
|
||||
* Matched uuids found in /sys/firmware/efi/efivars on Centos 7.
|
||||
* @param guid byte array holding the guid data.
|
||||
* @return UUID processed from the passed in guid
|
||||
*/
|
||||
private static UUID processGuid(final byte[] guid) {
|
||||
byte[] msb1 = new byte[UefiConstants.SIZE_4];
|
||||
@ -181,10 +183,10 @@ public class UefiGuid {
|
||||
/**
|
||||
* Retrieves the timestamp within a time based GUID.
|
||||
*
|
||||
* @param uuid uuid object
|
||||
* @param uuidTimeStamp uuid object
|
||||
* @return long representing the time stamp from the GUID
|
||||
*/
|
||||
public long getTimeFromUUID(final UUID uuid) {
|
||||
return (uuid.timestamp() - UUID_EPOCH_INTERVALS) / UUID_EPOCH_DIVISOR;
|
||||
public long getTimeFromUUID(final UUID uuidTimeStamp) {
|
||||
return (uuidTimeStamp.timestamp() - UUID_EPOCH_INTERVALS) / UUID_EPOCH_DIVISOR;
|
||||
}
|
||||
}
|
||||
|
@ -49,7 +49,8 @@ public class UefiPartition {
|
||||
System.arraycopy(table, 0, partitionGuidBytes, 0, UefiConstants.SIZE_16);
|
||||
partitionTypeGUID = new UefiGuid(partitionGuidBytes);
|
||||
byte[] uniquePartGuidBytes = new byte[UefiConstants.SIZE_16];
|
||||
System.arraycopy(table, UefiConstants.SIZE_16, uniquePartGuidBytes, 0, UefiConstants.SIZE_16);
|
||||
System.arraycopy(table, UefiConstants.SIZE_16, uniquePartGuidBytes,
|
||||
0, UefiConstants.SIZE_16);
|
||||
uniquePartitionGUID = new UefiGuid(uniquePartGuidBytes);
|
||||
byte[] attributeBytes = new byte[UefiConstants.SIZE_8];
|
||||
System.arraycopy(table, UefiConstants.ATTRIBUTE_LENGTH, attributeBytes,
|
||||
|
@ -119,7 +119,8 @@ public class UefiSignatureData {
|
||||
UefiSignatureData(final byte[] data) throws CertificateException, NoSuchAlgorithmException {
|
||||
System.arraycopy(data, 0, guid, 0, UefiConstants.SIZE_16);
|
||||
sigData = new byte[data.length - UefiConstants.SIZE_16];
|
||||
System.arraycopy(data, UefiConstants.OFFSET_16, sigData, 0, data.length - UefiConstants.SIZE_16);
|
||||
System.arraycopy(data, UefiConstants.OFFSET_16, sigData, 0,
|
||||
data.length - UefiConstants.SIZE_16);
|
||||
cert = new UefiX509Cert(sigData);
|
||||
efiVarGuid = new UefiGuid(guid);
|
||||
}
|
||||
|
@ -61,9 +61,12 @@ public class UefiVariable {
|
||||
* the class used to parse the data within the "VariableData".
|
||||
*
|
||||
* @param variableData byte array holding the UEFI Variable.
|
||||
* @throws java.security.cert.CertificateException If there a problem parsing the X509 certificate.
|
||||
* @throws java.security.NoSuchAlgorithmException if there's a problem hashing the certificate.
|
||||
* @throws java.io.IOException If there's a problem parsing the signature data.
|
||||
* @throws java.security.cert.CertificateException If there a problem
|
||||
* parsing the X509 certificate.
|
||||
* @throws java.security.NoSuchAlgorithmException if there's a problem
|
||||
* hashing the certificate.
|
||||
* @throws java.io.IOException If there's a problem
|
||||
* parsing the signature data.
|
||||
*/
|
||||
public UefiVariable(final byte[] variableData)
|
||||
throws CertificateException, NoSuchAlgorithmException, IOException {
|
||||
@ -77,9 +80,11 @@ public class UefiVariable {
|
||||
|
||||
System.arraycopy(variableData, 0, guid, 0, UefiConstants.SIZE_16);
|
||||
uefiVarGuid = new UefiGuid(guid);
|
||||
System.arraycopy(variableData, UefiConstants.SIZE_16, nameLength, 0, UefiConstants.SIZE_8);
|
||||
System.arraycopy(variableData, UefiConstants.SIZE_16, nameLength,
|
||||
0, UefiConstants.SIZE_8);
|
||||
int nlength = HexUtils.leReverseInt(nameLength);
|
||||
System.arraycopy(variableData, UefiConstants.OFFSET_24, dataLength, 0, UefiConstants.SIZE_8);
|
||||
System.arraycopy(variableData, UefiConstants.OFFSET_24, dataLength,
|
||||
0, UefiConstants.SIZE_8);
|
||||
nameTemp = new byte[nlength * UefiConstants.SIZE_2];
|
||||
|
||||
System.arraycopy(variableData, UefiConstants.OFFSET_32,
|
||||
@ -120,9 +125,12 @@ public class UefiVariable {
|
||||
* Processes the data as a UEFI defined Signature List.
|
||||
*
|
||||
* @param data the bye array holding the Signature List.
|
||||
* @throws java.security.cert.CertificateException If there a problem parsing the X509 certificate.
|
||||
* @throws java.security.NoSuchAlgorithmException if there's a problem hashing the certificate.
|
||||
* @throws java.io.IOException If there's a problem parsing the signature data.
|
||||
* @throws java.security.cert.CertificateException If there a problem
|
||||
* parsing the X509 certificate.
|
||||
* @throws java.security.NoSuchAlgorithmException if there's a problem
|
||||
* hashing the certificate.
|
||||
* @throws java.io.IOException If there's a problem
|
||||
* parsing the signature data.
|
||||
*/
|
||||
private void processSigList(final byte[] data)
|
||||
throws CertificateException, NoSuchAlgorithmException, IOException {
|
||||
@ -168,8 +176,8 @@ public class UefiVariable {
|
||||
break;
|
||||
default:
|
||||
if (!tmpName.isEmpty()) {
|
||||
efiVariable.append(String.format("Data not provided for UEFI variable named %s ",
|
||||
tmpName));
|
||||
efiVariable.append(String.format("Data not provided for "
|
||||
+ "UEFI variable named %s ", tmpName));
|
||||
} else {
|
||||
efiVariable.append("Data not provided ");
|
||||
}
|
||||
@ -190,7 +198,8 @@ public class UefiVariable {
|
||||
public String printCert(final byte[] data, final int offset) {
|
||||
String certInfo = "";
|
||||
byte[] certLength = new byte[UefiConstants.SIZE_2];
|
||||
System.arraycopy(data, offset + UefiConstants.OFFSET_2, certLength, 0, UefiConstants.SIZE_2);
|
||||
System.arraycopy(data, offset + UefiConstants.OFFSET_2, certLength,
|
||||
0, UefiConstants.SIZE_2);
|
||||
int cLength = new BigInteger(certLength).intValue() + UefiConstants.SIZE_4;
|
||||
byte[] certData = new byte[cLength];
|
||||
System.arraycopy(data, offset, certData, 0, cLength);
|
||||
|
@ -27,7 +27,8 @@ public class UefiX509Cert {
|
||||
* @throws java.security.cert.CertificateException If the certificate cannot parse.
|
||||
* @throws java.security.NoSuchAlgorithmException if a hash cannot be generated from the cert.
|
||||
*/
|
||||
public UefiX509Cert(final byte[] certData) throws CertificateException, NoSuchAlgorithmException {
|
||||
public UefiX509Cert(final byte[] certData) throws CertificateException,
|
||||
NoSuchAlgorithmException {
|
||||
CertificateFactory cf;
|
||||
cf = CertificateFactory.getInstance("X.509");
|
||||
InputStream targetStream = new ByteArrayInputStream(certData);
|
||||
|
@ -1,77 +1,94 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
||||
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
|
||||
<!--
|
||||
|
||||
Checkstyle configuration that checks the sun coding conventions from:
|
||||
|
||||
- the Java Language Specification at
|
||||
http://java.sun.com/docs/books/jls/second_edition/html/index.html
|
||||
https://docs.oracle.com/javase/specs/jls/se11/html/index.html
|
||||
|
||||
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
|
||||
- the Sun Code Conventions at https://www.oracle.com/java/technologies/javase/codeconventions-contents.html
|
||||
|
||||
- the Javadoc guidelines at
|
||||
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
|
||||
https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html
|
||||
|
||||
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
|
||||
- the JDK Api documentation https://docs.oracle.com/en/java/javase/11/
|
||||
|
||||
- some best practices
|
||||
|
||||
Checkstyle is very configurable. Be sure to read the documentation at
|
||||
http://checkstyle.sf.net (or in your downloaded distribution).
|
||||
https://checkstyle.org (or in your downloaded distribution).
|
||||
|
||||
Most Checks are configurable, be sure to consult the documentation.
|
||||
|
||||
To completely disable a check, just comment it out or delete it from the file.
|
||||
To suppress certain violations please review suppression filters.
|
||||
|
||||
Finally, it is worth reading the documentation.
|
||||
|
||||
-->
|
||||
|
||||
<module name="Checker">
|
||||
<property name="basedir" value="${basedir}"/>
|
||||
<!--
|
||||
If you set the basedir property below, then all reported file
|
||||
names will be relative to the specified directory. See
|
||||
https://checkstyle.org/config.html#Checker
|
||||
|
||||
<!-- Suppressions for rules -->
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${basedir}/suppressions.xml"/>
|
||||
<property name="basedir" value="${basedir}"/>
|
||||
-->
|
||||
<property name="severity" value="warning"/>
|
||||
<property name="fileExtensions" value="java"/>
|
||||
|
||||
<!-- Excludes all 'module-info.java' files -->
|
||||
<!-- See https://checkstyle.org/filefilters/index.html -->
|
||||
<module name="BeforeExecutionExclusionFileFilter">
|
||||
<property name="fileNamePattern" value="module\-info\.java$"/>
|
||||
</module>
|
||||
|
||||
<!-- https://checkstyle.org/filters/suppressionfilter.html -->
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${config_loc}/suppressions.xml"/>
|
||||
<property name="optional" value="false"/>
|
||||
</module>
|
||||
<module name="SuppressWarningsFilter"/>
|
||||
|
||||
<!-- Checks that a package-info.java file exists for each package. -->
|
||||
<!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
|
||||
<!-- See https://checkstyle.org/checks/javadoc/javadocpackage.html#JavadocPackage -->
|
||||
<module name="JavadocPackage"/>
|
||||
|
||||
<!-- Checks whether files end with a new line. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
|
||||
<module name="NewlineAtEndOfFile">
|
||||
<property name="lineSeparator" value="lf" />
|
||||
</module>
|
||||
<!-- See https://checkstyle.org/checks/misc/newlineatendoffile.html -->
|
||||
<module name="NewlineAtEndOfFile"/>
|
||||
|
||||
<!-- Checks that property files contain the same keys. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
|
||||
<!-- See https://checkstyle.org/checks/misc/translation.html -->
|
||||
<module name="Translation"/>
|
||||
|
||||
|
||||
<!-- Checks for Size Violations. -->
|
||||
<!-- See http://checkstyle.sf.net/config_sizes.html -->
|
||||
<!-- See https://checkstyle.org/checks/sizes/index.html -->
|
||||
<module name="FileLength"/>
|
||||
|
||||
<module name="LineLength">
|
||||
<property name="fileExtensions" value="java"/>
|
||||
<property name="max" value="110"/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for whitespace -->
|
||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
||||
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
|
||||
<module name="FileTabCharacter"/>
|
||||
|
||||
<!-- Miscellaneous other checks. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html -->
|
||||
<!-- See https://checkstyle.org/checks/misc/index.html -->
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\s+$"/>
|
||||
<property name="minimum" value="0"/>
|
||||
<property name="maximum" value="0"/>
|
||||
<property name="message" value="Line has trailing spaces."/>
|
||||
<property name="format" value="\s+$"/>
|
||||
<property name="minimum" value="0"/>
|
||||
<property name="maximum" value="0"/>
|
||||
<property name="message" value="Line has trailing spaces."/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for Headers -->
|
||||
<!-- See http://checkstyle.sf.net/config_header.html -->
|
||||
<!-- See https://checkstyle.org/checks/header/index.html -->
|
||||
<!-- <module name="Header"> -->
|
||||
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
|
||||
<!-- <property name="fileExtensions" value="java"/> -->
|
||||
@ -79,25 +96,19 @@
|
||||
|
||||
<module name="TreeWalker">
|
||||
|
||||
<!-- Allow suppress annotations -->
|
||||
<module name="SuppressWarningsHolder"/>
|
||||
|
||||
<!-- Checks for Javadoc comments. -->
|
||||
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
|
||||
<module name="JavadocMethod">
|
||||
<property name="scope" value="package"/>
|
||||
</module>
|
||||
<module name="JavadocType">
|
||||
<property name="scope" value="package"/>
|
||||
</module>
|
||||
<!-- See https://checkstyle.org/checks/javadoc/index.html -->
|
||||
<module name="InvalidJavadocPosition"/>
|
||||
<module name="JavadocMethod"/>
|
||||
<module name="JavadocType"/>
|
||||
<module name="JavadocVariable">
|
||||
<property name="scope" value="package"/>
|
||||
<property name="scope" value="public"/>
|
||||
</module>
|
||||
<module name="JavadocStyle"/>
|
||||
|
||||
<module name="MissingJavadocMethod"/>
|
||||
|
||||
<!-- Checks for Naming Conventions. -->
|
||||
<!-- See http://checkstyle.sf.net/config_naming.html -->
|
||||
<!-- See https://checkstyle.org/checks/naming/index.html -->
|
||||
<module name="ConstantName"/>
|
||||
<module name="LocalFinalVariableName"/>
|
||||
<module name="LocalVariableName"/>
|
||||
@ -108,29 +119,22 @@
|
||||
<module name="StaticVariableName"/>
|
||||
<module name="TypeName"/>
|
||||
|
||||
|
||||
<!-- Checks for imports -->
|
||||
<!-- See http://checkstyle.sf.net/config_import.html -->
|
||||
<!-- See https://checkstyle.org/checks/imports/index.html -->
|
||||
<module name="AvoidStarImport"/>
|
||||
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
|
||||
<module name="RedundantImport"/>
|
||||
<module name="UnusedImports"/>
|
||||
|
||||
<module name="UnusedImports">
|
||||
<property name="processJavadoc" value="false"/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for Size Violations. -->
|
||||
<!-- See http://checkstyle.sf.net/config_sizes.html -->
|
||||
<module name="LineLength">
|
||||
<property name="max" value="100"/>
|
||||
</module>
|
||||
<!-- See https://checkstyle.org/checks/sizes/index.html -->
|
||||
<module name="MethodLength"/>
|
||||
<module name="ParameterNumber">
|
||||
<property name="max" value="10"/>
|
||||
<property name="tokens" value="METHOD_DEF"/>
|
||||
</module>
|
||||
|
||||
<module name="ParameterNumber"/>
|
||||
|
||||
<!-- Checks for whitespace -->
|
||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
||||
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
|
||||
<module name="EmptyForIteratorPad"/>
|
||||
<module name="GenericWhitespace"/>
|
||||
<module name="MethodParamPad"/>
|
||||
@ -142,48 +146,42 @@
|
||||
<module name="WhitespaceAfter"/>
|
||||
<module name="WhitespaceAround"/>
|
||||
|
||||
|
||||
<!-- Modifier Checks -->
|
||||
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
|
||||
<!-- See https://checkstyle.org/checks/modifier/index.html -->
|
||||
<module name="ModifierOrder"/>
|
||||
<module name="RedundantModifier"/>
|
||||
|
||||
|
||||
<!-- Checks for blocks. You know, those {}'s -->
|
||||
<!-- See http://checkstyle.sf.net/config_blocks.html -->
|
||||
<!-- See https://checkstyle.org/checks/blocks/index.html -->
|
||||
<module name="AvoidNestedBlocks"/>
|
||||
<module name="EmptyBlock"/>
|
||||
<module name="LeftCurly"/>
|
||||
<module name="NeedBraces"/>
|
||||
<module name="RightCurly"/>
|
||||
|
||||
|
||||
<!-- Checks for common coding problems -->
|
||||
<!-- See http://checkstyle.sf.net/config_coding.html -->
|
||||
<module name="AvoidInlineConditionals"/>
|
||||
<!-- See https://checkstyle.org/checks/coding/index.html -->
|
||||
<module name="EmptyStatement"/>
|
||||
<module name="EqualsHashCode"/>
|
||||
<module name="HiddenField">
|
||||
<property name="tokens" value="VARIABLE_DEF"/>
|
||||
</module>
|
||||
<module name="HiddenField"/>
|
||||
<module name="IllegalInstantiation"/>
|
||||
<module name="InnerAssignment"/>
|
||||
<module name="MagicNumber"/>
|
||||
<module name="MissingSwitchDefault"/>
|
||||
<!-- <module name="RedundantThrows"/> -->
|
||||
<module name="MultipleVariableDeclarations"/>
|
||||
<module name="SimplifyBooleanExpression"/>
|
||||
<module name="SimplifyBooleanReturn"/>
|
||||
|
||||
<!-- Checks for class design -->
|
||||
<!-- See http://checkstyle.sf.net/config_design.html -->
|
||||
<!-- See https://checkstyle.org/checks/design/index.html -->
|
||||
<module name="DesignForExtension"/>
|
||||
<module name="FinalClass"/>
|
||||
<module name="HideUtilityClassConstructor"/>
|
||||
<module name="InterfaceIsType"/>
|
||||
<module name="VisibilityModifier"/>
|
||||
|
||||
|
||||
<!-- Miscellaneous other checks. -->
|
||||
<!-- See http://checkstyle.sf.net/config_misc.html -->
|
||||
<!-- See https://checkstyle.org/checks/misc/index.html -->
|
||||
<module name="ArrayTypeStyle"/>
|
||||
<module name="FinalParameters"/>
|
||||
<module name="TodoComment"/>
|
||||
@ -191,4 +189,4 @@
|
||||
|
||||
</module>
|
||||
|
||||
</module>
|
||||
</module>
|
16
config/checkstyle/suppressions.xml
Normal file
16
config/checkstyle/suppressions.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Puppy Crawl//DTD Suppressions 1.2//EN"
|
||||
"http://www.puppycrawl.com/dtds/suppressions_1_2.dtd">
|
||||
|
||||
<suppressions>
|
||||
<!-- Ignore Auto generated files -->
|
||||
<suppress files="[/\\]hirs[/\\]utils[/\\]xjc[/\\]" checks=".*" />
|
||||
<suppress files="ProvisionerTpm2.java" checks=".*" />
|
||||
|
||||
<!-- HIRS_Utils -->
|
||||
<!-- This ignores checking all public variable for a javadoc -->
|
||||
<suppress files="SwidTagConstants.java" checks="LineLength" />
|
||||
<suppress files="SwidTagConstants.java" checks="JavadocVariable" />
|
||||
</suppressions>
|
@ -2,6 +2,7 @@ import java.util.concurrent.TimeUnit
|
||||
plugins {
|
||||
id "java"
|
||||
id "com.netflix.nebula.ospackage" version "11.4.0"
|
||||
id 'checkstyle'
|
||||
}
|
||||
// Get version from main project gradle
|
||||
def packVersion = properties.get("packageVersion");
|
||||
@ -26,6 +27,26 @@ dependencies {
|
||||
|
||||
ext.configDir = new File(projectDir, 'config')
|
||||
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
|
||||
jar {
|
||||
// Keep jar clean:
|
||||
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.MF'
|
||||
|
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
||||
|
||||
<suppressions>
|
||||
<suppress files="Main.java" checks="HideUtilityClassConstructor" />
|
||||
<suppress checks="MagicNumber" files=".*[/\\]src[/\\]test[/\\]+" />
|
||||
<suppress checks="FinalParameters" files=".*[/\\]src[/\\]test[/\\]+" />
|
||||
<suppress checks="JavadocPackage" files=".*[/\\]src[/\\]test[/\\]+" />
|
||||
</suppressions>
|
@ -2,6 +2,7 @@ plugins {
|
||||
id "java"
|
||||
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
||||
id 'com.intershop.gradle.jaxb' version '5.1.0'
|
||||
id 'checkstyle'
|
||||
}
|
||||
|
||||
// Get version from main project gradle
|
||||
@ -44,6 +45,26 @@ test {
|
||||
testLogging.showStandardStreams true
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
toolVersion = '10.12.7'
|
||||
configFile file("${rootDir}/config/checkstyle/checkstyle.xml")
|
||||
}
|
||||
// https://github.com/checkstyle/checkstyle/issues/14211#issuecomment-1884129948
|
||||
configurations.checkstyle {
|
||||
resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
|
||||
select("com.google.guava:guava:0")
|
||||
}
|
||||
}
|
||||
checkstyleMain {
|
||||
source ='src/main/java'
|
||||
}
|
||||
tasks.withType(Checkstyle) {
|
||||
reports {
|
||||
xml.required = false
|
||||
html.required = true
|
||||
}
|
||||
}
|
||||
|
||||
jar {
|
||||
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.MF'
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
|
Loading…
Reference in New Issue
Block a user