diff --git a/core/java/algorithm/build.gradle b/core/java/algorithm/build.gradle index 59da7457..49a8fb70 100644 --- a/core/java/algorithm/build.gradle +++ b/core/java/algorithm/build.gradle @@ -5,7 +5,7 @@ plugins { description = 'Master Password Algorithm Implementation' dependencies { - compile (group: 'com.lyndir.lhunath.opal', name: 'opal-system', version: '1.6-p11') { + compile( group: 'com.lyndir.lhunath.opal', name: 'opal-system', version: '1.6-p11' ) { exclude( module: 'joda-time' ) } compile group: 'com.lyndir.lhunath.opal', name: 'opal-crypto', version: '1.6-p11' diff --git a/core/java/algorithm/pom.xml b/core/java/algorithm/pom.xml index b4c41ae2..8b2f7033 100644 --- a/core/java/algorithm/pom.xml +++ b/core/java/algorithm/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV1.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV1.java index e069e390..9d92dfd5 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV1.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV1.java @@ -24,9 +24,8 @@ import javax.annotation.Nullable; /** - * @see MPMasterKey.Version#V1 - * * @author lhunath, 2014-08-30 + * @see MPMasterKey.Version#V1 */ public class MPAlgorithmV1 extends MPAlgorithmV0 { @@ -37,20 +36,21 @@ public class MPAlgorithmV1 extends MPAlgorithmV0 { } @Override - public String sitePasswordFromTemplate(final byte[] masterKey, final byte[] siteKey, final MPResultType resultType, @Nullable final String resultParam) { + public String sitePasswordFromTemplate(final byte[] masterKey, final byte[] siteKey, final MPResultType resultType, + @Nullable final String resultParam) { // Determine the template. Preconditions.checkState( siteKey.length > 0 ); - int templateIndex = UnsignedBytes.toInt( siteKey[0] ); - MPTemplate template = resultType.getTemplateAtRollingIndex( templateIndex ); + int templateIndex = UnsignedBytes.toInt( siteKey[0] ); + MPTemplate template = resultType.getTemplateAtRollingIndex( templateIndex ); logger.trc( "template: %d => %s", templateIndex, template.getTemplateString() ); // Encode the password from the seed using the template. StringBuilder password = new StringBuilder( template.length() ); for (int i = 0; i < template.length(); ++i) { - int characterIndex = UnsignedBytes.toInt( siteKey[i + 1] ); - MPTemplateCharacterClass characterClass = template.getCharacterClassAtIndex( i ); - char passwordCharacter = characterClass.getCharacterAtRollingIndex( characterIndex ); + int characterIndex = UnsignedBytes.toInt( siteKey[i + 1] ); + MPTemplateCharacterClass characterClass = template.getCharacterClassAtIndex( i ); + char passwordCharacter = characterClass.getCharacterAtRollingIndex( characterIndex ); logger.trc( " - class: %c, index: %3d (0x%2H) => character: %c", characterClass.getIdentifier(), characterIndex, siteKey[i + 1], passwordCharacter ); diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV2.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV2.java index 1aca1a66..581c0c73 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV2.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV2.java @@ -25,9 +25,8 @@ import javax.annotation.Nullable; /** - * @see MPMasterKey.Version#V2 - * * @author lhunath, 2014-08-30 + * @see MPMasterKey.Version#V2 */ public class MPAlgorithmV2 extends MPAlgorithmV1 { @@ -39,7 +38,7 @@ public class MPAlgorithmV2 extends MPAlgorithmV1 { @Override public byte[] siteKey(final byte[] masterKey, final String siteName, UnsignedInteger siteCounter, final MPKeyPurpose keyPurpose, - @Nullable final String keyContext) { + @Nullable final String keyContext) { String keyScope = keyPurpose.getScope(); logger.trc( "keyScope: %s", keyScope ); @@ -49,10 +48,10 @@ public class MPAlgorithmV2 extends MPAlgorithmV1 { siteCounter = UnsignedInteger.valueOf( (System.currentTimeMillis() / (mpw_otp_window * 1000)) * mpw_otp_window ); // Calculate the site seed. - byte[] siteNameBytes = siteName.getBytes( mpw_charset ); - byte[] siteNameLengthBytes = toBytes( siteNameBytes.length ); - byte[] siteCounterBytes = toBytes( siteCounter ); - byte[] keyContextBytes = ((keyContext == null) || keyContext.isEmpty())? null: keyContext.getBytes( mpw_charset ); + byte[] siteNameBytes = siteName.getBytes( mpw_charset ); + byte[] siteNameLengthBytes = toBytes( siteNameBytes.length ); + byte[] siteCounterBytes = toBytes( siteCounter ); + byte[] keyContextBytes = ((keyContext == null) || keyContext.isEmpty())? null: keyContext.getBytes( mpw_charset ); byte[] keyContextLengthBytes = (keyContextBytes == null)? null: toBytes( keyContextBytes.length ); logger.trc( "siteSalt: keyScope=%s | #siteName=%s | siteName=%s | siteCounter=%s | #keyContext=%s | keyContext=%s", keyScope, CodeUtils.encodeHex( siteNameLengthBytes ), siteName, CodeUtils.encodeHex( siteCounterBytes ), diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV3.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV3.java index e5fabed9..5c90bcfa 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV3.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPAlgorithmV3.java @@ -24,9 +24,8 @@ import java.util.Arrays; /** - * @see MPMasterKey.Version#V3 - * * @author lhunath, 2014-08-30 + * @see MPMasterKey.Version#V3 */ public class MPAlgorithmV3 extends MPAlgorithmV2 { @@ -39,7 +38,7 @@ public class MPAlgorithmV3 extends MPAlgorithmV2 { @Override public byte[] masterKey(final String fullName, final char[] masterPassword) { - byte[] fullNameBytes = fullName.getBytes( mpw_charset ); + byte[] fullNameBytes = fullName.getBytes( mpw_charset ); byte[] fullNameLengthBytes = toBytes( fullNameBytes.length ); String keyScope = MPKeyPurpose.Authentication.getScope(); @@ -54,7 +53,7 @@ public class MPAlgorithmV3 extends MPAlgorithmV2 { // Calculate the master key. logger.trc( "masterKey: scrypt( masterPassword, masterKeySalt, N=%d, r=%d, p=%d )", scrypt_N, scrypt_r, scrypt_p ); - byte[] mpBytes = toBytes( masterPassword ); + byte[] mpBytes = toBytes( masterPassword ); byte[] masterKey = scrypt( masterKeySalt, mpBytes ); Arrays.fill( masterKeySalt, (byte) 0 ); Arrays.fill( mpBytes, (byte) 0 ); diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPMasterKey.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPMasterKey.java index ead3269b..bd87b9f2 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPMasterKey.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPMasterKey.java @@ -37,8 +37,8 @@ public class MPMasterKey { private static final Logger logger = Logger.get( MPMasterKey.class ); private final EnumMap keyByVersion = new EnumMap<>( Version.class ); - private final String fullName; - private final char[] masterPassword; + private final String fullName; + private final char[] masterPassword; private boolean invalidated; @@ -118,7 +118,7 @@ public class MPMasterKey { throws MPInvalidatedException { byte[] masterKey = masterKey( algorithmVersion ); - byte[] siteKey = siteKey( siteName, siteCounter, keyPurpose, keyContext, algorithmVersion ); + byte[] siteKey = siteKey( siteName, siteCounter, keyPurpose, keyContext, algorithmVersion ); logger.trc( "-- mpw_siteResult (algorithm: %d)", algorithmVersion.toInt() ); logger.trc( "resultType: %d (%s)", resultType.getType(), resultType.getShortName() ); @@ -150,7 +150,7 @@ public class MPMasterKey { Preconditions.checkArgument( !resultParam.isEmpty() ); byte[] masterKey = masterKey( algorithmVersion ); - byte[] siteKey = siteKey( siteName, siteCounter, keyPurpose, keyContext, algorithmVersion ); + byte[] siteKey = siteKey( siteName, siteCounter, keyPurpose, keyContext, algorithmVersion ); logger.trc( "-- mpw_siteState (algorithm: %d)", algorithmVersion.toInt() ); logger.trc( "resultType: %d (%s)", resultType.getType(), resultType.getShortName() ); diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPResultType.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPResultType.java index 04c6be1e..5e844ebb 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPResultType.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPResultType.java @@ -124,8 +124,8 @@ public enum MPResultType { * Derive a unique binary key. */ DeriveKey( "key", "Encryption key.", // - ImmutableList.of(), // - MPResultTypeClass.Derive, 0x0, MPSiteFeature.Alternative ); + ImmutableList.of(), // + MPResultTypeClass.Derive, 0x0, MPSiteFeature.Alternative ); static final Logger logger = Logger.get( MPResultType.class ); diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPTemplate.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPTemplate.java index 1983ebcc..e82fa65b 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPTemplate.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/MPTemplate.java @@ -36,7 +36,7 @@ public class MPTemplate extends MetaObject implements Serializable { private static final long serialVersionUID = 1L; - private final String templateString; + private final String templateString; private final List template; MPTemplate(@NonNls final String templateString) { diff --git a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/package-info.java b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/package-info.java index 0718ec25..09f9e645 100644 --- a/core/java/algorithm/src/main/java/com/lyndir/masterpassword/package-info.java +++ b/core/java/algorithm/src/main/java/com/lyndir/masterpassword/package-info.java @@ -17,11 +17,10 @@ //============================================================================== /** - * * @author lhunath, 15-02-04 */ - -@ParametersAreNonnullByDefault package com.lyndir.masterpassword; +@ParametersAreNonnullByDefault +package com.lyndir.masterpassword; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/core/java/model/build.gradle b/core/java/model/build.gradle index 9c488d26..1187b1ea 100644 --- a/core/java/model/build.gradle +++ b/core/java/model/build.gradle @@ -6,13 +6,13 @@ plugins { description = 'Master Password Site Model' dependencies { - compile project(':masterpassword-algorithm') + compile project( ':masterpassword-algorithm' ) - compile group: 'joda-time', name: 'joda-time', version:'2.4' + compile group: 'joda-time', name: 'joda-time', version: '2.4' compileOnly group: 'com.google.auto.value', name: 'auto-value', version: '1.2' - apt group: 'com.google.auto.value', name: 'auto-value', version: '1.2' + apt group: 'com.google.auto.value', name: 'auto-value', version: '1.2' - testCompile group: 'org.testng', name: 'testng', version:'6.8.5' - testCompile group: 'ch.qos.logback', name: 'logback-classic', version:'1.1.2' + testCompile group: 'org.testng', name: 'testng', version: '6.8.5' + testCompile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.2' } test.useTestNG() diff --git a/core/java/model/pom.xml b/core/java/model/pom.xml index 8b22d94c..27343413 100644 --- a/core/java/model/pom.xml +++ b/core/java/model/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 @@ -32,10 +33,10 @@ joda-time - com.google.auto.value - auto-value - 1.0-rc1 - provided + com.google.auto.value + auto-value + 1.0-rc1 + provided diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFileSite.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFileSite.java index 622648fe..3fbd35a7 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFileSite.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFileSite.java @@ -180,7 +180,8 @@ public class MPFileSite extends MPSite { this.loginContent = null; else this.loginContent = masterKey.siteState( - siteName, MPAlgorithm.mpw_default_counter, MPKeyPurpose.Identification, null, this.loginType, result, algorithmVersion ); + siteName, MPAlgorithm.mpw_default_counter, MPKeyPurpose.Identification, null, this.loginType, result, + algorithmVersion ); } @Nullable diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatMarshaller.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatMarshaller.java index 4ee4800d..cb08b9c9 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatMarshaller.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatMarshaller.java @@ -58,7 +58,7 @@ public class MPFlatMarshaller implements MPMarshaller { for (final MPFileSite site : user.getSites()) { String loginName = site.getLoginContent(); - String password = site.getSiteContent(); + String password = site.getSiteContent(); if (!contentMode.isRedacted()) { loginName = site.loginFor( masterKey ); password = site.resultFor( masterKey ); diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatUnmarshaller.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatUnmarshaller.java index 008d492d..fdc69956 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatUnmarshaller.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPFlatUnmarshaller.java @@ -37,7 +37,7 @@ import org.joda.time.DateTime; */ public class MPFlatUnmarshaller implements MPUnmarshaller { - private static final Logger logger = Logger.get( MPFlatUnmarshaller.class ); + private static final Logger logger = Logger.get( MPFlatUnmarshaller.class ); private static final Pattern[] unmarshallFormats = { Pattern.compile( "^([^ ]+) +(\\d+) +(\\d+)(:\\d+)? +([^\t]+)\t(.*)" ), Pattern.compile( "^([^ ]+) +(\\d+) +(\\d+)(:\\d+)?(:\\d+)? +([^\t]*)\t *([^\t]+)\t(.*)" ) }; @@ -73,7 +73,8 @@ public class MPFlatUnmarshaller implements MPUnmarshaller { headerStarted = true; else // Ends the header. - user = new MPFileUser( fullName, keyID, MPMasterKey.Version.fromInt( mpVersion ), avatar, defaultType, new DateTime( 0 ), MPMarshalFormat.Flat ); + user = new MPFileUser( fullName, keyID, MPMasterKey.Version.fromInt( mpVersion ), avatar, defaultType, + new DateTime( 0 ), MPMarshalFormat.Flat ); // Comment. else if (line.startsWith( "#" )) { @@ -116,7 +117,7 @@ public class MPFlatUnmarshaller implements MPUnmarshaller { user.getAlgorithmVersion().getAlgorithm().mpw_default_counter, MPResultType.forType( ConversionUtils.toIntegerNN( siteMatcher.group( 3 ) ) ), MPMasterKey.Version.fromInt( ConversionUtils.toIntegerNN( - colon.matcher( siteMatcher.group( 4 ) ).replaceAll( "" ) ) ), + colon.matcher( siteMatcher.group( 4 ) ).replaceAll( "" ) ) ), null, null, null, ConversionUtils.toIntegerNN( siteMatcher.group( 2 ) ), MPConstant.dateTimeFormatter.parseDateTime( siteMatcher.group( 1 ) ).toInstant() ); break; @@ -127,7 +128,7 @@ public class MPFlatUnmarshaller implements MPUnmarshaller { UnsignedInteger.valueOf( colon.matcher( siteMatcher.group( 5 ) ).replaceAll( "" ) ), MPResultType.forType( ConversionUtils.toIntegerNN( siteMatcher.group( 3 ) ) ), MPMasterKey.Version.fromInt( ConversionUtils.toIntegerNN( - colon.matcher( siteMatcher.group( 4 ) ).replaceAll( "" ) ) ), + colon.matcher( siteMatcher.group( 4 ) ).replaceAll( "" ) ) ), siteMatcher.group( 6 ), MPResultType.GeneratedName, null, ConversionUtils.toIntegerNN( siteMatcher.group( 2 ) ), MPConstant.dateTimeFormatter.parseDateTime( siteMatcher.group( 1 ) ).toInstant() ); diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPJSONUnmarshaller.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPJSONUnmarshaller.java index 74f9d65d..0b6d159f 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPJSONUnmarshaller.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPJSONUnmarshaller.java @@ -38,7 +38,7 @@ public class MPJSONUnmarshaller implements MPUnmarshaller { @Nonnull @Override public MPFileUser unmarshall(@Nonnull final String content) - throws MPMarshalException{ + throws MPMarshalException { throw new MPMarshalException( "Not yet implemented" ); } } diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPMarshaller.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPMarshaller.java index 0c287717..8d2e7b1c 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPMarshaller.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPMarshaller.java @@ -36,8 +36,8 @@ public interface MPMarshaller { PROTECTED( "Export of site names and stored passwords (unless device-private) encrypted with the master key." ), VISIBLE( "Export of site names and passwords in clear-text." ); - private final String description; - private boolean redacted; + private final String description; + private boolean redacted; ContentMode(final String description) { this.description = description; diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPSite.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPSite.java index b7eb047d..4fad0f3f 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPSite.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPSite.java @@ -59,7 +59,8 @@ public abstract class MPSite { throws MPInvalidatedException { return masterKey.siteResult( - getSiteName(), MPAlgorithm.mpw_default_counter, MPKeyPurpose.Identification, null, loginType, loginContent, getAlgorithmVersion() ); + getSiteName(), MPAlgorithm.mpw_default_counter, MPKeyPurpose.Identification, null, loginType, loginContent, + getAlgorithmVersion() ); } @Override diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPUserManager.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPUserManager.java index 8ff40074..8e821e53 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPUserManager.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/MPUserManager.java @@ -29,7 +29,7 @@ import java.util.*; public abstract class MPUserManager { private final Map usersByName = Maps.newHashMap(); - static MPUserManager instance; + static MPUserManager instance; public static MPUserManager get() { return instance; diff --git a/core/java/model/src/main/java/com/lyndir/masterpassword/model/package-info.java b/core/java/model/src/main/java/com/lyndir/masterpassword/model/package-info.java index 3bb6e671..b11e443c 100644 --- a/core/java/model/src/main/java/com/lyndir/masterpassword/model/package-info.java +++ b/core/java/model/src/main/java/com/lyndir/masterpassword/model/package-info.java @@ -17,7 +17,6 @@ //============================================================================== /** - * * @author lhunath, 15-02-04 */ diff --git a/core/java/tests/build.gradle b/core/java/tests/build.gradle index aae837af..39df10ba 100644 --- a/core/java/tests/build.gradle +++ b/core/java/tests/build.gradle @@ -5,9 +5,9 @@ plugins { description = 'Master Password Test Suite' dependencies { - compile project(':masterpassword-algorithm') + compile project( ':masterpassword-algorithm' ) - testCompile group: 'org.testng', name: 'testng', version:'6.8.5' - testCompile group: 'ch.qos.logback', name: 'logback-classic', version:'1.1.2' + testCompile group: 'org.testng', name: 'testng', version: '6.8.5' + testCompile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.2' } test.useTestNG() diff --git a/core/java/tests/pom.xml b/core/java/tests/pom.xml index cba8d8b8..85c7f04e 100644 --- a/core/java/tests/pom.xml +++ b/core/java/tests/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 diff --git a/gradle/gradle/wrapper/gradle-wrapper.properties b/gradle/gradle/wrapper/gradle-wrapper.properties index 92165eed..a277a67e 100644 --- a/gradle/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Thu Apr 26 12:52:02 EDT 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip diff --git a/platform-android/build.gradle b/platform-android/build.gradle index cf7edb19..d082d4fb 100644 --- a/platform-android/build.gradle +++ b/platform-android/build.gradle @@ -36,11 +36,11 @@ android { } dependencies { - compile project( ':masterpassword-algorithm' ) - compile project( ':masterpassword-tests' ) + compile project( ':masterpassword-algorithm' ) + compile project( ':masterpassword-tests' ) - compile group: 'org.slf4j', name: 'slf4j-android', version:'1.7.13-underscore' - compile group: 'com.jakewharton', name: 'butterknife', version:'8.5.1' - annotationProcessor group: 'com.jakewharton', name: 'butterknife-compiler', version:'8.5.1' - compile files( 'libs/scrypt-1.4.0-native.jar' ) + compile group: 'org.slf4j', name: 'slf4j-android', version: '1.7.13-underscore' + compile group: 'com.jakewharton', name: 'butterknife', version: '8.5.1' + annotationProcessor group: 'com.jakewharton', name: 'butterknife-compiler', version: '8.5.1' + compile files( 'libs/scrypt-1.4.0-native.jar' ) } diff --git a/platform-android/pom.xml b/platform-android/pom.xml index 0e54568d..25a61c99 100644 --- a/platform-android/pom.xml +++ b/platform-android/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 @@ -86,8 +87,10 @@ ${env.PASSWORD} masterpassword-android - -sigalgMD5withRSA - -digestalgSHA1 + -sigalg + MD5withRSA + -digestalg + SHA1 diff --git a/platform-android/src/main/java/com/lyndir/masterpassword/EmergencyActivity.java b/platform-android/src/main/java/com/lyndir/masterpassword/EmergencyActivity.java index cb3f35d9..fe7792db 100644 --- a/platform-android/src/main/java/com/lyndir/masterpassword/EmergencyActivity.java +++ b/platform-android/src/main/java/com/lyndir/masterpassword/EmergencyActivity.java @@ -49,11 +49,13 @@ public class EmergencyActivity extends Activity { private static final Logger logger = Logger.get( EmergencyActivity.class ); private static final ClipData EMPTY_CLIP = new ClipData( new ClipDescription( "", new String[0] ), new ClipData.Item( "" ) ); private static final int PASSWORD_NOTIFICATION = 0; - public static final int CLIPBOARD_CLEAR_DELAY = 20 /* s */ * MPConstant.MS_PER_S; + public static final int CLIPBOARD_CLEAR_DELAY = 20 /* s */ * MPConstant.MS_PER_S; private final Preferences preferences = Preferences.get( this ); - private final ListeningExecutorService executor = MoreExecutors.listeningDecorator( Executors.newSingleThreadExecutor() ); - private final ImmutableList allResultTypes = ImmutableList.copyOf( MPResultType.forClass( MPResultTypeClass.Template ) ); + private final ListeningExecutorService executor = MoreExecutors.listeningDecorator( + Executors.newSingleThreadExecutor() ); + private final ImmutableList allResultTypes = ImmutableList.copyOf( + MPResultType.forClass( MPResultTypeClass.Template ) ); private final ImmutableList allVersions = ImmutableList.copyOf( MPMasterKey.Version.values() ); private MPMasterKey masterKey; @@ -211,7 +213,7 @@ public class EmergencyActivity extends Activity { protected void onResume() { super.onResume(); -// FIXME: MasterKey.setAllowNativeByDefault( preferences.isAllowNativeKDF() ); + // FIXME: MasterKey.setAllowNativeByDefault( preferences.isAllowNativeKDF() ); fullNameField.setText( preferences.getFullName() ); rememberFullNameField.setChecked( preferences.isRememberFullName() ); @@ -254,7 +256,7 @@ public class EmergencyActivity extends Activity { } private synchronized void updateMasterKey() { - final String fullName = fullNameField.getText().toString(); + final String fullName = fullNameField.getText().toString(); final char[] masterPassword = masterPasswordField.getText().toString().toCharArray(); if ((id_userName == fullName.hashCode()) && (id_masterPassword == Arrays.hashCode( masterPassword ))) @@ -336,10 +338,10 @@ public class EmergencyActivity extends Activity { if (TextUtils.isEmpty( currentSitePassword )) return; - final ClipboardManager clipboardManager = (ClipboardManager) getSystemService( CLIPBOARD_SERVICE ); + final ClipboardManager clipboardManager = (ClipboardManager) getSystemService( CLIPBOARD_SERVICE ); final NotificationManager notificationManager = (NotificationManager) getSystemService( Context.NOTIFICATION_SERVICE ); - String title = strf( "Password for %s", siteNameField.getText() ); + String title = strf( "Password for %s", siteNameField.getText() ); ClipDescription description = new ClipDescription( title, new String[]{ ClipDescription.MIMETYPE_TEXT_PLAIN } ); clipboardManager.setPrimaryClip( new ClipData( description, new ClipData.Item( currentSitePassword ) ) ); diff --git a/platform-android/src/main/java/com/lyndir/masterpassword/MainThreadExecutor.java b/platform-android/src/main/java/com/lyndir/masterpassword/MainThreadExecutor.java index 13456524..2d7c1769 100644 --- a/platform-android/src/main/java/com/lyndir/masterpassword/MainThreadExecutor.java +++ b/platform-android/src/main/java/com/lyndir/masterpassword/MainThreadExecutor.java @@ -33,7 +33,7 @@ public class MainThreadExecutor extends AbstractExecutorService { private final Handler mHandler = new Handler( Looper.getMainLooper() ); private final Set commands = Sets.newLinkedHashSet(); - private boolean shutdown; + private boolean shutdown; @Override public void execute(final Runnable command) { diff --git a/platform-android/src/main/java/com/lyndir/masterpassword/Preferences.java b/platform-android/src/main/java/com/lyndir/masterpassword/Preferences.java index 8425bda9..01ed31e5 100644 --- a/platform-android/src/main/java/com/lyndir/masterpassword/Preferences.java +++ b/platform-android/src/main/java/com/lyndir/masterpassword/Preferences.java @@ -32,15 +32,15 @@ import javax.annotation.Nullable; */ public final class Preferences { - private static final String PREF_TESTS_PASSED = "integrityTestsPassed"; - private static final String PREF_NATIVE_KDF = "nativeKDF"; - private static final String PREF_REMEMBER_FULL_NAME = "rememberFullName"; - private static final String PREF_FORGET_PASSWORD = "forgetPassword"; - private static final String PREF_MASK_PASSWORD = "maskPassword"; - private static final String PREF_FULL_NAME = "fullName"; - private static final String PREF_RESULT_TYPE = "resultType"; - private static final String PREF_ALGORITHM_VERSION = "algorithmVersion"; - private static Preferences instance; + private static final String PREF_TESTS_PASSED = "integrityTestsPassed"; + private static final String PREF_NATIVE_KDF = "nativeKDF"; + private static final String PREF_REMEMBER_FULL_NAME = "rememberFullName"; + private static final String PREF_FORGET_PASSWORD = "forgetPassword"; + private static final String PREF_MASK_PASSWORD = "maskPassword"; + private static final String PREF_FULL_NAME = "fullName"; + private static final String PREF_RESULT_TYPE = "resultType"; + private static final String PREF_ALGORITHM_VERSION = "algorithmVersion"; + private static Preferences instance; private Context context; @Nullable diff --git a/platform-independent/gui-java/build.gradle b/platform-independent/gui-java/build.gradle index dd3d7468..92e546ae 100644 --- a/platform-independent/gui-java/build.gradle +++ b/platform-independent/gui-java/build.gradle @@ -8,10 +8,10 @@ description = 'Master Password GUI' mainClassName = 'com.lyndir.masterpassword.gui.GUI' dependencies { - compile project(':masterpassword-model') + compile project( ':masterpassword-model' ) - compile group: 'ch.qos.logback', name: 'logback-classic', version:'1.1.2' - compile group: 'com.yuvimasory', name: 'orange-extensions', version:'1.3.0' + compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.2' + compile group: 'com.yuvimasory', name: 'orange-extensions', version: '1.3.0' } run { diff --git a/platform-independent/gui-java/pom.xml b/platform-independent/gui-java/pom.xml index 5a2b1b22..d17a5b79 100644 --- a/platform-independent/gui-java/pom.xml +++ b/platform-independent/gui-java/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 @@ -116,8 +117,10 @@ ${env.PASSWORD} masterpassword-desktop - -sigalgMD5withRSA - -digestalgSHA1 + -sigalg + MD5withRSA + -digestalg + SHA1 diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/GUI.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/GUI.java index 6c034fc0..cc714a2e 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/GUI.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/GUI.java @@ -16,7 +16,6 @@ // LICENSE file. Alternatively, see . //============================================================================== - package com.lyndir.masterpassword.gui; import com.google.common.base.*; @@ -45,8 +44,8 @@ public class GUI implements UnlockFrame.SignInCallback { @SuppressWarnings("UnusedDeclaration") private static final Logger logger = Logger.get( GUI.class ); - private final UnlockFrame unlockFrame = new UnlockFrame( this ); - private PasswordFrame passwordFrame; + private final UnlockFrame unlockFrame = new UnlockFrame( this ); + private PasswordFrame passwordFrame; public static void main(final String... args) { if (Config.get().checkForUpdates()) @@ -54,7 +53,7 @@ public class GUI implements UnlockFrame.SignInCallback { // Try and set the system look & feel, if available. try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException ignored) { } @@ -67,7 +66,8 @@ public class GUI implements UnlockFrame.SignInCallback { else // No special platform handling. new GUI().open(); - } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) { + } + catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) { throw logger.bug( e ); } } @@ -77,14 +77,14 @@ public class GUI implements UnlockFrame.SignInCallback { Enumeration manifestURLs = Thread.currentThread().getContextClassLoader().getResources( JarFile.MANIFEST_NAME ); while (manifestURLs.hasMoreElements()) { InputStream manifestStream = manifestURLs.nextElement().openStream(); - Attributes attributes = new Manifest( manifestStream ).getMainAttributes(); + Attributes attributes = new Manifest( manifestStream ).getMainAttributes(); if (!GUI.class.getCanonicalName().equals( attributes.getValue( Attributes.Name.MAIN_CLASS ) )) continue; - String manifestRevision = attributes.getValue( Attributes.Name.IMPLEMENTATION_VERSION ); - String upstreamRevisionURL = "https://masterpasswordapp.com/masterpassword-gui.jar.rev"; - CharSource upstream = Resources.asCharSource( URI.create( upstreamRevisionURL ).toURL(), Charsets.UTF_8 ); - String upstreamRevision = upstream.readFirstLine(); + String manifestRevision = attributes.getValue( Attributes.Name.IMPLEMENTATION_VERSION ); + String upstreamRevisionURL = "https://masterpasswordapp.com/masterpassword-gui.jar.rev"; + CharSource upstream = Resources.asCharSource( URI.create( upstreamRevisionURL ).toURL(), Charsets.UTF_8 ); + String upstreamRevision = upstream.readFirstLine(); if ((manifestRevision != null) && (upstreamRevision != null) && !manifestRevision.equalsIgnoreCase( upstreamRevision )) { logger.inf( "Local Revision: <%s>", manifestRevision ); logger.inf( "Upstream Revision: <%s>", upstreamRevision ); diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/Res.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/Res.java index 81c79313..2664a9ad 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/Res.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/Res.java @@ -50,10 +50,10 @@ import org.jetbrains.annotations.NonNls; @SuppressWarnings("HardcodedFileSeparator") public abstract class Res { - private static final int AVATAR_COUNT = 19; + private static final int AVATAR_COUNT = 19; private static final Map executorByWindow = new WeakHashMap<>(); - private static final Logger logger = Logger.get( Res.class ); - private static final Colors colors = new Colors(); + private static final Logger logger = Logger.get( Res.class ); + private static final Colors colors = new Colors(); public static Future execute(final Window host, final Runnable job) { return schedule( host, job, 0, TimeUnit.MILLISECONDS ); @@ -203,8 +203,8 @@ public abstract class Res { private static Font font(@NonNls final String fontResourceName) { Map> fontsByResourceName = Maps.newHashMap(); - SoftReference fontRef = fontsByResourceName.get( fontResourceName ); - Font font = (fontRef == null)? null: fontRef.get(); + SoftReference fontRef = fontsByResourceName.get( fontResourceName ); + Font font = (fontRef == null)? null: fontRef.get(); if (font == null) try { fontsByResourceName.put( fontResourceName, new SoftReference<>( @@ -223,8 +223,8 @@ public abstract class Res { private static final class RetinaIcon extends ImageIcon { - private static final Pattern scalePattern = Pattern.compile( ".*@(\\d+)x.[^.]+$" ); - private static final long serialVersionUID = 1L; + private static final Pattern scalePattern = Pattern.compile( ".*@(\\d+)x.[^.]+$" ); + private static final long serialVersionUID = 1L; private final float scale; @@ -265,10 +265,10 @@ public abstract class Res { public synchronized void paintIcon(final Component c, final Graphics g, final int x, final int y) { ImageObserver observer = ifNotNullElse( getImageObserver(), c ); - Image image = getImage(); - int width = image.getWidth( observer ); - int height = image.getHeight( observer ); - Graphics2D g2d = (Graphics2D) g.create( x, y, width, height ); + Image image = getImage(); + int width = image.getWidth( observer ); + int height = image.getHeight( observer ); + Graphics2D g2d = (Graphics2D) g.create( x, y, width, height ); g2d.scale( 1 / scale, 1 / scale ); g2d.drawImage( image, 0, 0, observer ); diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/model/package-info.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/model/package-info.java index 791bf234..26021fed 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/model/package-info.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/model/package-info.java @@ -17,7 +17,6 @@ //============================================================================== /** - * * @author lhunath, 15-02-04 */ diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/package-info.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/package-info.java index 5320e635..d06fad40 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/package-info.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/package-info.java @@ -17,7 +17,6 @@ //============================================================================== /** - * * @author lhunath, 15-02-04 */ diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/Components.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/Components.java index 16f6ac60..f2db4cb1 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/Components.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/Components.java @@ -117,8 +117,8 @@ public abstract class Components { } public static Component stud() { - Dimension studDimension = new Dimension( 8, 8 ); - Box.Filler rigidArea = new Box.Filler( studDimension, studDimension, studDimension ); + Dimension studDimension = new Dimension( 8, 8 ); + Box.Filler rigidArea = new Box.Filler( studDimension, studDimension, studDimension ); rigidArea.setAlignmentX( Component.LEFT_ALIGNMENT ); rigidArea.setAlignmentY( Component.BOTTOM_ALIGNMENT ); rigidArea.setBackground( Color.red ); diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/package-info.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/package-info.java index 3e7cdf6d..b0f8394a 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/package-info.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/util/package-info.java @@ -17,7 +17,6 @@ //============================================================================== /** - * * @author lhunath, 15-02-04 */ diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/IncognitoAuthenticationPanel.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/IncognitoAuthenticationPanel.java index 20eba05a..c04cbcf2 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/IncognitoAuthenticationPanel.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/IncognitoAuthenticationPanel.java @@ -81,7 +81,7 @@ public class IncognitoAuthenticationPanel extends AuthenticationPanel newPasswordFrame() { - return new PasswordFrame(getSelectedUser()) { + return new PasswordFrame( getSelectedUser() ) { @Override protected IncognitoSite createSite(final IncognitoUser user, final String siteName, final UnsignedInteger siteCounter, final MPResultType resultType, diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/ModelAuthenticationPanel.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/ModelAuthenticationPanel.java index acf87386..d9992e4f 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/ModelAuthenticationPanel.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/ModelAuthenticationPanel.java @@ -43,12 +43,12 @@ import javax.swing.plaf.metal.MetalComboBoxEditor; public class ModelAuthenticationPanel extends AuthenticationPanel implements ItemListener, ActionListener, DocumentListener { @SuppressWarnings("UnusedDeclaration") - private static final Logger logger = Logger.get( ModelAuthenticationPanel.class ); - private static final long serialVersionUID = 1L; + private static final Logger logger = Logger.get( ModelAuthenticationPanel.class ); + private static final long serialVersionUID = 1L; private final JComboBox userField; - private final JLabel masterPasswordLabel; - private final JPasswordField masterPasswordField; + private final JLabel masterPasswordLabel; + private final JPasswordField masterPasswordField; public ModelAuthenticationPanel(final UnlockFrame unlockFrame) { super( unlockFrame ); @@ -170,9 +170,10 @@ public class ModelAuthenticationPanel extends AuthenticationPanel im return; if (JOptionPane.showConfirmDialog( ModelAuthenticationPanel.this, // - strf( "Are you sure you want to delete the user and sites remembered for:\n%s.", - deleteUser.getFullName() ), // - "Delete User", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE ) == JOptionPane.CANCEL_OPTION) + strf( "Are you sure you want to delete the user and sites remembered for:\n%s.", + deleteUser.getFullName() ), // + "Delete User", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE ) + == JOptionPane.CANCEL_OPTION) return; MPFileUserManager.get().deleteUser( deleteUser ); @@ -205,9 +206,10 @@ public class ModelAuthenticationPanel extends AuthenticationPanel im @Override public PasswordFrame newPasswordFrame() { - return new PasswordFrame(getSelectedUser()) { + return new PasswordFrame( getSelectedUser() ) { @Override - protected MPFileSite createSite(final MPFileUser user, final String siteName, final UnsignedInteger siteCounter, final MPResultType resultType, + protected MPFileSite createSite(final MPFileUser user, final String siteName, final UnsignedInteger siteCounter, + final MPResultType resultType, final MPMasterKey.Version algorithmVersion) { return new MPFileSite( user, siteName, siteCounter, resultType, algorithmVersion ); } diff --git a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/UnlockFrame.java b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/UnlockFrame.java index ec354b29..ca95aa5f 100644 --- a/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/UnlockFrame.java +++ b/platform-independent/gui-java/src/main/java/com/lyndir/masterpassword/gui/view/UnlockFrame.java @@ -44,10 +44,10 @@ public class UnlockFrame extends JFrame { private final JLabel identiconLabel; private final JButton signInButton; private final JPanel authenticationContainer; - private AuthenticationPanel authenticationPanel; + private AuthenticationPanel authenticationPanel; private Future identiconFuture; private boolean incognito; - private MPUser user; + private MPUser user; public UnlockFrame(final SignInCallback signInCallback) { super( "Unlock Master Password" ); @@ -170,7 +170,7 @@ public class UnlockFrame extends JFrame { SwingUtilities.invokeLater( new Runnable() { @Override public void run() { - String fullName = (user == null)? "": user.getFullName(); + String fullName = (user == null)? "": user.getFullName(); char[] masterPassword = authenticationPanel.getMasterPassword(); if (fullName.isEmpty() || (masterPassword.length == 0)) { @@ -187,9 +187,9 @@ public class UnlockFrame extends JFrame { } }, 300, TimeUnit.MILLISECONDS ); - String fullName = (user == null)? "": user.getFullName(); - char[] masterPassword = authenticationPanel.getMasterPassword(); - boolean enabled = !fullName.isEmpty() && (masterPassword.length > 0); + String fullName = (user == null)? "": user.getFullName(); + char[] masterPassword = authenticationPanel.getMasterPassword(); + boolean enabled = !fullName.isEmpty() && (masterPassword.length > 0); signInButton.setEnabled( enabled ); return enabled;