mirror of
https://github.com/nsacyber/HIRS.git
synced 2025-01-29 15:44:14 +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 'java'
|
||||||
id 'io.spring.dependency-management' version '1.1.0'
|
id 'io.spring.dependency-management' version '1.1.0'
|
||||||
id 'com.google.protobuf' version '0.9.4'
|
id 'com.google.protobuf' version '0.9.4'
|
||||||
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@ -57,7 +58,28 @@ dependencies {
|
|||||||
implementation libs.lombok
|
implementation libs.lombok
|
||||||
annotationProcessor 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 {
|
protobuf {
|
||||||
protoc {
|
protoc {
|
||||||
artifact = 'com.google.protobuf:protoc:3.24.3'
|
artifact = 'com.google.protobuf:protoc:3.24.3'
|
||||||
|
@ -5,6 +5,7 @@ plugins {
|
|||||||
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
||||||
id 'org.springframework.boot' version '3.0.6'
|
id 'org.springframework.boot' version '3.0.6'
|
||||||
id 'io.spring.dependency-management' version '1.1.0'
|
id 'io.spring.dependency-management' version '1.1.0'
|
||||||
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get version from main project gradle
|
// Get version from main project gradle
|
||||||
@ -59,6 +60,29 @@ dependencies {
|
|||||||
testImplementation 'org.hsqldb:hsqldb'
|
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 {
|
test {
|
||||||
useJUnitPlatform()
|
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 {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
// id 'checkstyle'
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@ -28,17 +28,29 @@ test {
|
|||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
//ext.configDir = new File(projectDir, 'config')
|
checkstyle {
|
||||||
//ext.checkstyleConfigDir = "$configDir/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 {
|
//publishing {
|
||||||
// publications {
|
// publications {
|
||||||
// maven(MavenPublication) {
|
// 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 {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
// Get version from main project gradle
|
// Get version from main project gradle
|
||||||
def packVersion = properties.get("packageVersion");
|
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 {
|
test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
@ -59,11 +59,14 @@ public class UefiBootVariable {
|
|||||||
System.arraycopy(bootVar, UefiConstants.OFFSET_6, blob, 0, blobLength);
|
System.arraycopy(bootVar, UefiConstants.OFFSET_6, blob, 0, blobLength);
|
||||||
int descLength = getChar16ArrayLength(blob);
|
int descLength = getChar16ArrayLength(blob);
|
||||||
byte[] desc = new byte[descLength * UefiConstants.SIZE_2];
|
byte[] desc = new byte[descLength * UefiConstants.SIZE_2];
|
||||||
System.arraycopy(bootVar, UefiConstants.OFFSET_6, desc, 0, descLength * UefiConstants.SIZE_2);
|
System.arraycopy(bootVar, UefiConstants.OFFSET_6, desc, 0,
|
||||||
description = new String(UefiDevicePath.convertChar16tobyteArray(desc), StandardCharsets.UTF_8);
|
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)
|
// Data following the Description should be EFI Partition Data (EFI_DEVICE_PATH_PROTOCOL)
|
||||||
int devPathLength = blobLength;
|
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];
|
byte[] devPath = new byte[devPathLength];
|
||||||
System.arraycopy(bootVar, devPathOffset, devPath, 0, devPathLength);
|
System.arraycopy(bootVar, devPathOffset, devPath, 0, devPathLength);
|
||||||
efiDevPath = new UefiDevicePath(devPath);
|
efiDevPath = new UefiDevicePath(devPath);
|
||||||
@ -79,7 +82,8 @@ public class UefiBootVariable {
|
|||||||
*/
|
*/
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder bootInfo = new StringBuilder("Description = ");
|
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());
|
bootInfo.append(bootVar + "\n" + efiDevPath.toString());
|
||||||
return bootInfo.toString();
|
return bootInfo.toString();
|
||||||
}
|
}
|
||||||
|
@ -255,15 +255,19 @@ public class UefiDevicePath {
|
|||||||
private String hardDriveSubType(final byte[] path, final int offset) {
|
private String hardDriveSubType(final byte[] path, final int offset) {
|
||||||
subType = "Partition Number = ";
|
subType = "Partition Number = ";
|
||||||
byte[] partnumber = new byte[UefiConstants.SIZE_4];
|
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);
|
subType += HexUtils.byteArrayToHexString(partnumber);
|
||||||
byte[] data = new byte[UefiConstants.SIZE_8];
|
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);
|
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);
|
subType += " Partition Size = " + HexUtils.byteArrayToHexString(data);
|
||||||
byte[] signature = new byte[UefiConstants.SIZE_16];
|
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 = ";
|
subType += "\n Partition Signature = ";
|
||||||
if (path[UefiConstants.OFFSET_41 + offset] == UefiConstants.DRIVE_SIG_NONE) {
|
if (path[UefiConstants.OFFSET_41 + offset] == UefiConstants.DRIVE_SIG_NONE) {
|
||||||
subType += "None";
|
subType += "None";
|
||||||
@ -299,7 +303,8 @@ public class UefiDevicePath {
|
|||||||
System.arraycopy(path, 2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
System.arraycopy(path, 2 + offset, lengthBytes, 0, UefiConstants.SIZE_2);
|
||||||
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||||
byte[] filePath = new byte[subTypeLength];
|
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);
|
byte[] fileName = convertChar16tobyteArray(filePath);
|
||||||
subType += new String(fileName, StandardCharsets.UTF_8);
|
subType += new String(fileName, StandardCharsets.UTF_8);
|
||||||
return subType;
|
return subType;
|
||||||
@ -318,10 +323,12 @@ public class UefiDevicePath {
|
|||||||
private String vendorSubType(final byte[] path, final int offset) {
|
private String vendorSubType(final byte[] path, final int offset) {
|
||||||
subType = "Vendor Subtype GUID = ";
|
subType = "Vendor Subtype GUID = ";
|
||||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
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);
|
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
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);
|
UefiGuid guid = new UefiGuid(guidData);
|
||||||
subType += guid.toString() + " ";
|
subType += guid.toString() + " ";
|
||||||
if (subTypeLength - UefiConstants.SIZE_16 > 0) {
|
if (subTypeLength - UefiConstants.SIZE_16 > 0) {
|
||||||
@ -348,10 +355,12 @@ public class UefiDevicePath {
|
|||||||
subType += " port = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_4]);
|
subType += " port = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_4]);
|
||||||
subType += " interface = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_5]);
|
subType += " interface = " + Integer.valueOf(path[offset + UefiConstants.OFFSET_5]);
|
||||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
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);
|
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||||
byte[] usbData = new byte[subTypeLength];
|
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 ...
|
// Todo add further USB processing ...
|
||||||
return subType;
|
return subType;
|
||||||
}
|
}
|
||||||
@ -370,10 +379,12 @@ public class UefiDevicePath {
|
|||||||
private String nvmSubType(final byte[] path, final int offset) {
|
private String nvmSubType(final byte[] path, final int offset) {
|
||||||
subType = "NVM Express Namespace = ";
|
subType = "NVM Express Namespace = ";
|
||||||
byte[] lengthBytes = new byte[UefiConstants.SIZE_2];
|
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);
|
int subTypeLength = HexUtils.leReverseInt(lengthBytes);
|
||||||
byte[] nvmData = new byte[subTypeLength];
|
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);
|
subType += HexUtils.byteArrayToHexString(nvmData);
|
||||||
return subType;
|
return subType;
|
||||||
}
|
}
|
||||||
@ -385,6 +396,7 @@ public class UefiDevicePath {
|
|||||||
* Status bootHandler pointer, and description String pointer are ignored.
|
* Status bootHandler pointer, and description String pointer are ignored.
|
||||||
*
|
*
|
||||||
* @param path byte array holding the device path.
|
* @param path byte array holding the device path.
|
||||||
|
* @param offset
|
||||||
* @return String that represents the UEFI defined BIOS Device Type.
|
* @return String that represents the UEFI defined BIOS Device Type.
|
||||||
*/
|
*/
|
||||||
private String biosDevicePath(final byte[] path, final int offset) {
|
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) {
|
private String piwgFirmVolFile(final byte[] path, final int offset) {
|
||||||
subType = "PIWG Firmware File ";
|
subType = "PIWG Firmware File ";
|
||||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
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);
|
UefiGuid guid = new UefiGuid(guidData);
|
||||||
subType += guid.toString();
|
subType += guid.toString();
|
||||||
return subType;
|
return subType;
|
||||||
@ -455,7 +468,8 @@ public class UefiDevicePath {
|
|||||||
private String piwgFirmVolPath(final byte[] path, final int offset) {
|
private String piwgFirmVolPath(final byte[] path, final int offset) {
|
||||||
subType = "PIWG Firmware Volume ";
|
subType = "PIWG Firmware Volume ";
|
||||||
byte[] guidData = new byte[UefiConstants.SIZE_16];
|
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);
|
UefiGuid guid = new UefiGuid(guidData);
|
||||||
subType += guid.toString();
|
subType += guid.toString();
|
||||||
return subType;
|
return subType;
|
||||||
|
@ -65,6 +65,8 @@ public class UefiGuid {
|
|||||||
* Converts a GUID with a byte array to a RFC-1422 UUID object.
|
* 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
|
* 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.
|
* 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) {
|
private static UUID processGuid(final byte[] guid) {
|
||||||
byte[] msb1 = new byte[UefiConstants.SIZE_4];
|
byte[] msb1 = new byte[UefiConstants.SIZE_4];
|
||||||
@ -181,10 +183,10 @@ public class UefiGuid {
|
|||||||
/**
|
/**
|
||||||
* Retrieves the timestamp within a time based GUID.
|
* 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
|
* @return long representing the time stamp from the GUID
|
||||||
*/
|
*/
|
||||||
public long getTimeFromUUID(final UUID uuid) {
|
public long getTimeFromUUID(final UUID uuidTimeStamp) {
|
||||||
return (uuid.timestamp() - UUID_EPOCH_INTERVALS) / UUID_EPOCH_DIVISOR;
|
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);
|
System.arraycopy(table, 0, partitionGuidBytes, 0, UefiConstants.SIZE_16);
|
||||||
partitionTypeGUID = new UefiGuid(partitionGuidBytes);
|
partitionTypeGUID = new UefiGuid(partitionGuidBytes);
|
||||||
byte[] uniquePartGuidBytes = new byte[UefiConstants.SIZE_16];
|
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);
|
uniquePartitionGUID = new UefiGuid(uniquePartGuidBytes);
|
||||||
byte[] attributeBytes = new byte[UefiConstants.SIZE_8];
|
byte[] attributeBytes = new byte[UefiConstants.SIZE_8];
|
||||||
System.arraycopy(table, UefiConstants.ATTRIBUTE_LENGTH, attributeBytes,
|
System.arraycopy(table, UefiConstants.ATTRIBUTE_LENGTH, attributeBytes,
|
||||||
|
@ -119,7 +119,8 @@ public class UefiSignatureData {
|
|||||||
UefiSignatureData(final byte[] data) throws CertificateException, NoSuchAlgorithmException {
|
UefiSignatureData(final byte[] data) throws CertificateException, NoSuchAlgorithmException {
|
||||||
System.arraycopy(data, 0, guid, 0, UefiConstants.SIZE_16);
|
System.arraycopy(data, 0, guid, 0, UefiConstants.SIZE_16);
|
||||||
sigData = new byte[data.length - 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);
|
cert = new UefiX509Cert(sigData);
|
||||||
efiVarGuid = new UefiGuid(guid);
|
efiVarGuid = new UefiGuid(guid);
|
||||||
}
|
}
|
||||||
|
@ -61,9 +61,12 @@ public class UefiVariable {
|
|||||||
* the class used to parse the data within the "VariableData".
|
* the class used to parse the data within the "VariableData".
|
||||||
*
|
*
|
||||||
* @param variableData byte array holding the UEFI Variable.
|
* @param variableData byte array holding the UEFI Variable.
|
||||||
* @throws java.security.cert.CertificateException If there a problem parsing the X509 certificate.
|
* @throws java.security.cert.CertificateException If there a problem
|
||||||
* @throws java.security.NoSuchAlgorithmException if there's a problem hashing the certificate.
|
* parsing the X509 certificate.
|
||||||
* @throws java.io.IOException If there's a problem parsing the signature data.
|
* @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)
|
public UefiVariable(final byte[] variableData)
|
||||||
throws CertificateException, NoSuchAlgorithmException, IOException {
|
throws CertificateException, NoSuchAlgorithmException, IOException {
|
||||||
@ -77,9 +80,11 @@ public class UefiVariable {
|
|||||||
|
|
||||||
System.arraycopy(variableData, 0, guid, 0, UefiConstants.SIZE_16);
|
System.arraycopy(variableData, 0, guid, 0, UefiConstants.SIZE_16);
|
||||||
uefiVarGuid = new UefiGuid(guid);
|
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);
|
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];
|
nameTemp = new byte[nlength * UefiConstants.SIZE_2];
|
||||||
|
|
||||||
System.arraycopy(variableData, UefiConstants.OFFSET_32,
|
System.arraycopy(variableData, UefiConstants.OFFSET_32,
|
||||||
@ -120,9 +125,12 @@ public class UefiVariable {
|
|||||||
* Processes the data as a UEFI defined Signature List.
|
* Processes the data as a UEFI defined Signature List.
|
||||||
*
|
*
|
||||||
* @param data the bye array holding the 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.cert.CertificateException If there a problem
|
||||||
* @throws java.security.NoSuchAlgorithmException if there's a problem hashing the certificate.
|
* parsing the X509 certificate.
|
||||||
* @throws java.io.IOException If there's a problem parsing the signature data.
|
* @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)
|
private void processSigList(final byte[] data)
|
||||||
throws CertificateException, NoSuchAlgorithmException, IOException {
|
throws CertificateException, NoSuchAlgorithmException, IOException {
|
||||||
@ -168,8 +176,8 @@ public class UefiVariable {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!tmpName.isEmpty()) {
|
if (!tmpName.isEmpty()) {
|
||||||
efiVariable.append(String.format("Data not provided for UEFI variable named %s ",
|
efiVariable.append(String.format("Data not provided for "
|
||||||
tmpName));
|
+ "UEFI variable named %s ", tmpName));
|
||||||
} else {
|
} else {
|
||||||
efiVariable.append("Data not provided ");
|
efiVariable.append("Data not provided ");
|
||||||
}
|
}
|
||||||
@ -190,7 +198,8 @@ public class UefiVariable {
|
|||||||
public String printCert(final byte[] data, final int offset) {
|
public String printCert(final byte[] data, final int offset) {
|
||||||
String certInfo = "";
|
String certInfo = "";
|
||||||
byte[] certLength = new byte[UefiConstants.SIZE_2];
|
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;
|
int cLength = new BigInteger(certLength).intValue() + UefiConstants.SIZE_4;
|
||||||
byte[] certData = new byte[cLength];
|
byte[] certData = new byte[cLength];
|
||||||
System.arraycopy(data, offset, certData, 0, 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.cert.CertificateException If the certificate cannot parse.
|
||||||
* @throws java.security.NoSuchAlgorithmException if a hash cannot be generated from the cert.
|
* @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;
|
CertificateFactory cf;
|
||||||
cf = CertificateFactory.getInstance("X.509");
|
cf = CertificateFactory.getInstance("X.509");
|
||||||
InputStream targetStream = new ByteArrayInputStream(certData);
|
InputStream targetStream = new ByteArrayInputStream(certData);
|
||||||
|
@ -1,77 +1,94 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE module PUBLIC
|
<!DOCTYPE module PUBLIC
|
||||||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||||
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Checkstyle configuration that checks the sun coding conventions from:
|
Checkstyle configuration that checks the sun coding conventions from:
|
||||||
|
|
||||||
- the Java Language Specification at
|
- 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
|
- 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
|
- some best practices
|
||||||
|
|
||||||
Checkstyle is very configurable. Be sure to read the documentation at
|
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.
|
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 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.
|
Finally, it is worth reading the documentation.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<module name="Checker">
|
<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 -->
|
<property name="basedir" value="${basedir}"/>
|
||||||
<module name="SuppressionFilter">
|
-->
|
||||||
<property name="file" value="${basedir}/suppressions.xml"/>
|
<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>
|
||||||
<module name="SuppressWarningsFilter"/>
|
|
||||||
|
|
||||||
<!-- Checks that a package-info.java file exists for each package. -->
|
<!-- 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"/>
|
<module name="JavadocPackage"/>
|
||||||
|
|
||||||
<!-- Checks whether files end with a new line. -->
|
<!-- Checks whether files end with a new line. -->
|
||||||
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
|
<!-- See https://checkstyle.org/checks/misc/newlineatendoffile.html -->
|
||||||
<module name="NewlineAtEndOfFile">
|
<module name="NewlineAtEndOfFile"/>
|
||||||
<property name="lineSeparator" value="lf" />
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<!-- Checks that property files contain the same keys. -->
|
<!-- 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"/>
|
<module name="Translation"/>
|
||||||
|
|
||||||
<!-- Checks for Size Violations. -->
|
<!-- 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="FileLength"/>
|
||||||
|
<module name="LineLength">
|
||||||
|
<property name="fileExtensions" value="java"/>
|
||||||
|
<property name="max" value="110"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
<!-- Checks for whitespace -->
|
<!-- Checks for whitespace -->
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
|
||||||
<module name="FileTabCharacter"/>
|
<module name="FileTabCharacter"/>
|
||||||
|
|
||||||
<!-- Miscellaneous other checks. -->
|
<!-- Miscellaneous other checks. -->
|
||||||
<!-- See http://checkstyle.sf.net/config_misc.html -->
|
<!-- See https://checkstyle.org/checks/misc/index.html -->
|
||||||
<module name="RegexpSingleline">
|
<module name="RegexpSingleline">
|
||||||
<property name="format" value="\s+$"/>
|
<property name="format" value="\s+$"/>
|
||||||
<property name="minimum" value="0"/>
|
<property name="minimum" value="0"/>
|
||||||
<property name="maximum" value="0"/>
|
<property name="maximum" value="0"/>
|
||||||
<property name="message" value="Line has trailing spaces."/>
|
<property name="message" value="Line has trailing spaces."/>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<!-- Checks for Headers -->
|
<!-- Checks for Headers -->
|
||||||
<!-- See http://checkstyle.sf.net/config_header.html -->
|
<!-- See https://checkstyle.org/checks/header/index.html -->
|
||||||
<!-- <module name="Header"> -->
|
<!-- <module name="Header"> -->
|
||||||
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
|
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
|
||||||
<!-- <property name="fileExtensions" value="java"/> -->
|
<!-- <property name="fileExtensions" value="java"/> -->
|
||||||
@ -79,25 +96,19 @@
|
|||||||
|
|
||||||
<module name="TreeWalker">
|
<module name="TreeWalker">
|
||||||
|
|
||||||
<!-- Allow suppress annotations -->
|
|
||||||
<module name="SuppressWarningsHolder"/>
|
|
||||||
|
|
||||||
<!-- Checks for Javadoc comments. -->
|
<!-- Checks for Javadoc comments. -->
|
||||||
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
|
<!-- See https://checkstyle.org/checks/javadoc/index.html -->
|
||||||
<module name="JavadocMethod">
|
<module name="InvalidJavadocPosition"/>
|
||||||
<property name="scope" value="package"/>
|
<module name="JavadocMethod"/>
|
||||||
</module>
|
<module name="JavadocType"/>
|
||||||
<module name="JavadocType">
|
|
||||||
<property name="scope" value="package"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocVariable">
|
<module name="JavadocVariable">
|
||||||
<property name="scope" value="package"/>
|
<property name="scope" value="public"/>
|
||||||
</module>
|
</module>
|
||||||
<module name="JavadocStyle"/>
|
<module name="JavadocStyle"/>
|
||||||
|
<module name="MissingJavadocMethod"/>
|
||||||
|
|
||||||
<!-- Checks for Naming Conventions. -->
|
<!-- 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="ConstantName"/>
|
||||||
<module name="LocalFinalVariableName"/>
|
<module name="LocalFinalVariableName"/>
|
||||||
<module name="LocalVariableName"/>
|
<module name="LocalVariableName"/>
|
||||||
@ -108,29 +119,22 @@
|
|||||||
<module name="StaticVariableName"/>
|
<module name="StaticVariableName"/>
|
||||||
<module name="TypeName"/>
|
<module name="TypeName"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- Checks for imports -->
|
<!-- Checks for imports -->
|
||||||
<!-- See http://checkstyle.sf.net/config_import.html -->
|
<!-- See https://checkstyle.org/checks/imports/index.html -->
|
||||||
<module name="AvoidStarImport"/>
|
<module name="AvoidStarImport"/>
|
||||||
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
|
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
|
||||||
<module name="RedundantImport"/>
|
<module name="RedundantImport"/>
|
||||||
<module name="UnusedImports"/>
|
<module name="UnusedImports">
|
||||||
|
<property name="processJavadoc" value="false"/>
|
||||||
|
</module>
|
||||||
|
|
||||||
<!-- Checks for Size Violations. -->
|
<!-- Checks for Size Violations. -->
|
||||||
<!-- See http://checkstyle.sf.net/config_sizes.html -->
|
<!-- See https://checkstyle.org/checks/sizes/index.html -->
|
||||||
<module name="LineLength">
|
|
||||||
<property name="max" value="100"/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodLength"/>
|
<module name="MethodLength"/>
|
||||||
<module name="ParameterNumber">
|
<module name="ParameterNumber"/>
|
||||||
<property name="max" value="10"/>
|
|
||||||
<property name="tokens" value="METHOD_DEF"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Checks for whitespace -->
|
<!-- Checks for whitespace -->
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
|
||||||
<module name="EmptyForIteratorPad"/>
|
<module name="EmptyForIteratorPad"/>
|
||||||
<module name="GenericWhitespace"/>
|
<module name="GenericWhitespace"/>
|
||||||
<module name="MethodParamPad"/>
|
<module name="MethodParamPad"/>
|
||||||
@ -142,48 +146,42 @@
|
|||||||
<module name="WhitespaceAfter"/>
|
<module name="WhitespaceAfter"/>
|
||||||
<module name="WhitespaceAround"/>
|
<module name="WhitespaceAround"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- Modifier Checks -->
|
<!-- Modifier Checks -->
|
||||||
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
|
<!-- See https://checkstyle.org/checks/modifier/index.html -->
|
||||||
<module name="ModifierOrder"/>
|
<module name="ModifierOrder"/>
|
||||||
<module name="RedundantModifier"/>
|
<module name="RedundantModifier"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- Checks for blocks. You know, those {}'s -->
|
<!-- 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="AvoidNestedBlocks"/>
|
||||||
<module name="EmptyBlock"/>
|
<module name="EmptyBlock"/>
|
||||||
<module name="LeftCurly"/>
|
<module name="LeftCurly"/>
|
||||||
<module name="NeedBraces"/>
|
<module name="NeedBraces"/>
|
||||||
<module name="RightCurly"/>
|
<module name="RightCurly"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- Checks for common coding problems -->
|
<!-- Checks for common coding problems -->
|
||||||
<!-- See http://checkstyle.sf.net/config_coding.html -->
|
<!-- See https://checkstyle.org/checks/coding/index.html -->
|
||||||
<module name="AvoidInlineConditionals"/>
|
|
||||||
<module name="EmptyStatement"/>
|
<module name="EmptyStatement"/>
|
||||||
<module name="EqualsHashCode"/>
|
<module name="EqualsHashCode"/>
|
||||||
<module name="HiddenField">
|
<module name="HiddenField"/>
|
||||||
<property name="tokens" value="VARIABLE_DEF"/>
|
|
||||||
</module>
|
|
||||||
<module name="IllegalInstantiation"/>
|
<module name="IllegalInstantiation"/>
|
||||||
<module name="InnerAssignment"/>
|
<module name="InnerAssignment"/>
|
||||||
<module name="MagicNumber"/>
|
<module name="MagicNumber"/>
|
||||||
<module name="MissingSwitchDefault"/>
|
<module name="MissingSwitchDefault"/>
|
||||||
<!-- <module name="RedundantThrows"/> -->
|
<module name="MultipleVariableDeclarations"/>
|
||||||
<module name="SimplifyBooleanExpression"/>
|
<module name="SimplifyBooleanExpression"/>
|
||||||
<module name="SimplifyBooleanReturn"/>
|
<module name="SimplifyBooleanReturn"/>
|
||||||
|
|
||||||
<!-- Checks for class design -->
|
<!-- 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="FinalClass"/>
|
||||||
<module name="HideUtilityClassConstructor"/>
|
<module name="HideUtilityClassConstructor"/>
|
||||||
<module name="InterfaceIsType"/>
|
<module name="InterfaceIsType"/>
|
||||||
<module name="VisibilityModifier"/>
|
<module name="VisibilityModifier"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- Miscellaneous other checks. -->
|
<!-- Miscellaneous other checks. -->
|
||||||
<!-- See http://checkstyle.sf.net/config_misc.html -->
|
<!-- See https://checkstyle.org/checks/misc/index.html -->
|
||||||
<module name="ArrayTypeStyle"/>
|
<module name="ArrayTypeStyle"/>
|
||||||
<module name="FinalParameters"/>
|
<module name="FinalParameters"/>
|
||||||
<module name="TodoComment"/>
|
<module name="TodoComment"/>
|
||||||
@ -191,4 +189,4 @@
|
|||||||
|
|
||||||
</module>
|
</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 {
|
plugins {
|
||||||
id "java"
|
id "java"
|
||||||
id "com.netflix.nebula.ospackage" version "11.4.0"
|
id "com.netflix.nebula.ospackage" version "11.4.0"
|
||||||
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
// Get version from main project gradle
|
// Get version from main project gradle
|
||||||
def packVersion = properties.get("packageVersion");
|
def packVersion = properties.get("packageVersion");
|
||||||
@ -26,6 +27,26 @@ dependencies {
|
|||||||
|
|
||||||
ext.configDir = new File(projectDir, 'config')
|
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 {
|
jar {
|
||||||
// Keep jar clean:
|
// Keep jar clean:
|
||||||
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.MF'
|
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 "java"
|
||||||
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
id 'com.netflix.nebula.ospackage' version '11.4.0'
|
||||||
id 'com.intershop.gradle.jaxb' version '5.1.0'
|
id 'com.intershop.gradle.jaxb' version '5.1.0'
|
||||||
|
id 'checkstyle'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get version from main project gradle
|
// Get version from main project gradle
|
||||||
@ -44,6 +45,26 @@ test {
|
|||||||
testLogging.showStandardStreams true
|
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 {
|
jar {
|
||||||
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.MF'
|
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.MF'
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user