diff --git a/TP3/src/main/java/authentication/AuthenticationService.java b/TP3/src/main/java/authentication/AuthenticationService.java new file mode 100644 index 0000000000000000000000000000000000000000..fe90cd50ff3ad3c5e3ef3885ad910b7a78532d9c --- /dev/null +++ b/TP3/src/main/java/authentication/AuthenticationService.java @@ -0,0 +1,6 @@ +package authentication; + +public interface AuthenticationService { + boolean isAMatch(String identifier, String autenthicationData); + Strength dataStrenth(String autenthicationData); +} diff --git a/TP3/src/main/java/authentication/Strength.java b/TP3/src/main/java/authentication/Strength.java new file mode 100644 index 0000000000000000000000000000000000000000..be909d1f254944e3acddf3874ba8a59e3b1b0568 --- /dev/null +++ b/TP3/src/main/java/authentication/Strength.java @@ -0,0 +1,5 @@ +package authentication; + +public enum Strength { + VERY_WEAK, WEAK, REGULAR, STRONG +} diff --git a/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java b/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java new file mode 100644 index 0000000000000000000000000000000000000000..aaa4ced0c74c423c43e46269405c83ca90e89a3d --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/AuthenticationByBiometryService.java @@ -0,0 +1,26 @@ +package interfacemanualmocking; + +import authentication.AuthenticationService; +import authentication.Strength; + +public class AuthenticationByBiometryService implements AuthenticationService { + private DirectoryInterface directory; + private StrengthEstimationServiceInterface strengthEstimationService; + + public AuthenticationByBiometryService(DirectoryInterface directory, StrengthEstimationServiceInterface strengthEstimationService) { + this.directory = directory; + this.strengthEstimationService = strengthEstimationService; + } + + + @Override + public boolean isAMatch(String identifier, String autenthicationData) { + String match = directory.getMatch(identifier); + return match.equals(autenthicationData); + } + + @Override + public Strength dataStrenth(String autenthicationData) { + return Strength.STRONG; + } +} diff --git a/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java b/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java new file mode 100644 index 0000000000000000000000000000000000000000..e6ce7d3a8944bd460ccce8a11d866f521cd1ab15 --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/AuthenticationByPasswordService.java @@ -0,0 +1,50 @@ +package interfacemanualmocking; + +import authentication.AuthenticationService; +import authentication.Strength; + +public class AuthenticationByPasswordService implements AuthenticationService { + private DirectoryInterface directory; + private StrengthEstimationServiceInterface strengthEstimationService; + + public AuthenticationByPasswordService(DirectoryInterface directory, StrengthEstimationServiceInterface strengthEstimationService) { + this.directory = directory; + this.strengthEstimationService = strengthEstimationService; + } + + + @Override + public boolean isAMatch(String identifier, String autenthicationData) { + String match = directory.getMatch(identifier); + return match.equals(autenthicationData); + } + + @Override + public Strength dataStrenth(String autenthicationData) { + int datasize = autenthicationData.length(); + int alphabetSize = 142; + int strength = strengthEstimationService.equivalentBitLength(alphabetSize,datasize) + if( strength >= 0 && strength <= 49 ) { + return Strength.VERY_WEAK; + } + if( strength >= 50 && strength <= 79 ) { + return Strength.WEAK; + } + if ( strength >= 80 && strength <= 99 ) { + return Strength.REGULAR; + } + if ( strength >= 100 ) { + return Strength.STRONG; + } +} + private boolean isMatch(String identifier, String autenthicationData) { + String match = directory.getMatch(identifier); + return match.equals(autenthicationData); + } + + //private StrengthEstimationServiceInterface dataStrenth(String autenthicationData) { + // int alphabetSize = 0; + // int datasize = autenthicationData.length(); + //return strengthEstimationService.equivalentBitLength(alphabetSize, datasize); + } + diff --git a/TP3/src/main/java/interfacemanualmocking/DirectoryInterface.java b/TP3/src/main/java/interfacemanualmocking/DirectoryInterface.java new file mode 100644 index 0000000000000000000000000000000000000000..497fa6485c4b097d3a082a630708d5b2f2896ebf --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/DirectoryInterface.java @@ -0,0 +1,5 @@ +package interfacemanualmocking; + +public interface DirectoryInterface { + String getMatch(String identifier); +} diff --git a/TP3/src/main/java/interfacemanualmocking/StrengthEstimationServiceInterface.java b/TP3/src/main/java/interfacemanualmocking/StrengthEstimationServiceInterface.java new file mode 100644 index 0000000000000000000000000000000000000000..2d99e4dc506102dbe989868decdb1a4ff5215ec5 --- /dev/null +++ b/TP3/src/main/java/interfacemanualmocking/StrengthEstimationServiceInterface.java @@ -0,0 +1,5 @@ +package interfacemanualmocking; + +public interface StrengthEstimationServiceInterface { + int equivalentBitLength(int alphabetSize, int datasize); +}