+
+ // Pinned SSL certificates.
+ public boolean hasPinnedSslCertificate() {
+ // Return the status of the pinned SSL certificate.
+ return hasPinnedSslCertificate;
+ }
+
+ public void setPinnedSslCertificate(String issuedToCName, String issuedToOName, String issuedToUName, String issuedByCName, String issuedByOName, String issuedByUName, Date startDate, Date endDate) {
+ // Store the pinned SSL certificate information.
+ pinnedSslIssuedToCName = issuedToCName;
+ pinnedSslIssuedToOName = issuedToOName;
+ pinnedSslIssuedToUName = issuedToUName;
+ pinnedSslIssuedByCName = issuedByCName;
+ pinnedSslIssuedByOName = issuedByOName;
+ pinnedSslIssuedByUName = issuedByUName;
+ pinnedSslStartDate = startDate;
+ pinnedSslEndDate = endDate;
+
+ // Set the pinned SSL certificate tracker.
+ hasPinnedSslCertificate = true;
+ }
+
+ public ArrayList<Object> getPinnedSslCertificate() {
+ // Initialize an array list.
+ ArrayList<Object> arrayList = new ArrayList<>();
+
+ // Create the SSL certificate string array.
+ String[] sslCertificateStringArray = new String[] {pinnedSslIssuedToCName, pinnedSslIssuedToOName, pinnedSslIssuedToUName, pinnedSslIssuedByCName, pinnedSslIssuedByOName, pinnedSslIssuedByUName};
+
+ // Create the SSL certificate date array.
+ Date[] sslCertificateDateArray = new Date[] {pinnedSslStartDate, pinnedSslEndDate};
+
+ // Add the arrays to the array list.
+ arrayList.add(sslCertificateStringArray);
+ arrayList.add(sslCertificateDateArray);
+
+ // Return the pinned SSL certificate array list.
+ return arrayList;
+ }
+
+ public void clearPinnedSslCertificate() {
+ // Clear the pinned SSL certificate.
+ pinnedSslIssuedToCName = null;
+ pinnedSslIssuedToOName = null;
+ pinnedSslIssuedToUName = null;
+ pinnedSslIssuedByCName = null;
+ pinnedSslIssuedByOName = null;
+ pinnedSslIssuedByUName = null;
+ pinnedSslStartDate = null;
+ pinnedSslEndDate = null;
+
+ // Clear the pinned SSL certificate tracker.
+ hasPinnedSslCertificate = false;
+ }
+
+
+ // Current IP addresses.
+ public boolean hasCurrentIpAddresses() {
+ // Return the status of the current IP addresses.
+ return hasCurrentIpAddresses;
+ }
+
+ public void setCurrentIpAddresses(String ipAddresses) {
+ // Store the current IP addresses.
+ currentIpAddresses = ipAddresses;
+
+ // Set the current IP addresses tracker.
+ hasCurrentIpAddresses = true;
+ }
+
+ public String getCurrentIpAddresses() {
+ // Return the current IP addresses.
+ return currentIpAddresses;
+ }
+
+ public void clearCurrentIpAddresses() {
+ // Clear the current IP addresses.
+ currentIpAddresses = null;
+
+ // Clear the current IP addresses tracker.
+ hasCurrentIpAddresses = false;
+ }
+
+
+ // Pinned IP addresses.
+ public boolean hasPinnedIpAddresses() {
+ // Return the status of the pinned IP addresses.
+ return hasPinnedIpAddresses;
+ }
+
+ public void setPinnedIpAddresses(String ipAddresses) {
+ // Store the pinned IP addresses.
+ pinnedIpAddresses = ipAddresses;
+
+ // Set the pinned IP addresses tracker.
+ hasPinnedIpAddresses = true;
+ }
+
+ public String getPinnedIpAddresses() {
+ // Return the pinned IP addresses.
+ return pinnedIpAddresses;
+ }
+
+ public void clearPinnedIpAddresses() {
+ // Clear the pinned IP addresses.
+ pinnedIpAddresses = null;
+
+ // Clear the pinned IP addresses tracker.
+ hasPinnedIpAddresses = false;
+ }
+
+
+ // Ignore pinned information. The syntax looks better as written, even if it is always inverted.
+ @SuppressWarnings("BooleanMethodIsAlwaysInverted")
+ public boolean ignorePinnedDomainInformation() {
+ // Return the status of the ignore pinned domain information tracker.
+ return ignorePinnedDomainInformation;
+ }
+
+ public void setIgnorePinnedDomainInformation(boolean status) {
+ // Set the status of the ignore pinned domain information tracker.
+ ignorePinnedDomainInformation = status;
+ }
+
+
+