2
0

Fix default type for new sites & site UI updating.

This commit is contained in:
Maarten Billemont
2018-07-29 15:10:45 -04:00
parent 928b617ed0
commit fe63a2756a
11 changed files with 62 additions and 33 deletions

View File

@@ -28,6 +28,7 @@ import com.lyndir.lhunath.opal.system.MessageDigests;
import com.lyndir.masterpassword.impl.*;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -88,46 +89,55 @@ public abstract class MPAlgorithm {
/**
* The linear version identifier of this algorithm's implementation.
*/
@Nonnull
public abstract Version version();
/**
* mpw: defaults: initial counter value.
*/
@Nonnull
public abstract UnsignedInteger mpw_default_counter();
/**
* mpw: defaults: password result type.
*/
@Nonnull
public abstract MPResultType mpw_default_result_type();
/**
* mpw: defaults: login result type.
*/
@Nonnull
public abstract MPResultType mpw_default_login_type();
/**
* mpw: defaults: answer result type.
*/
@Nonnull
public abstract MPResultType mpw_default_answer_type();
/**
* mpw: Input character encoding.
*/
@Nonnull
public abstract Charset mpw_charset();
/**
* mpw: Platform-agnostic byte order.
*/
@Nonnull
public abstract ByteOrder mpw_byteOrder();
/**
* mpw: Key ID hash.
*/
@Nonnull
public abstract MessageDigests mpw_hash();
/**
* mpw: Site digest.
*/
@Nonnull
public abstract MessageAuthenticationDigests mpw_digest();
/**
@@ -167,12 +177,16 @@ public abstract class MPAlgorithm {
// Utilities
@Nonnull
protected abstract byte[] toBytes(int number);
@Nonnull
protected abstract byte[] toBytes(UnsignedInteger number);
@Nonnull
protected abstract byte[] toBytes(char[] characters);
@Nonnull
protected abstract byte[] toID(byte[] bytes);
@Override

View File

@@ -27,6 +27,7 @@ import com.lyndir.masterpassword.*;
import java.nio.*;
import java.nio.charset.*;
import java.util.Arrays;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -122,46 +123,55 @@ public class MPAlgorithmV0 extends MPAlgorithm {
// Configuration
@Nonnull
@Override
public Version version() {
return MPAlgorithm.Version.V0;
}
@Nonnull
@Override
public UnsignedInteger mpw_default_counter() {
return UnsignedInteger.ONE;
}
@Nonnull
@Override
public MPResultType mpw_default_result_type() {
return MPResultType.GeneratedLong;
}
@Nonnull
@Override
public MPResultType mpw_default_login_type() {
return MPResultType.GeneratedName;
}
@Nonnull
@Override
public MPResultType mpw_default_answer_type() {
return MPResultType.GeneratedPhrase;
}
@Nonnull
@Override
public Charset mpw_charset() {
return Charsets.UTF_8;
}
@Nonnull
@Override
public ByteOrder mpw_byteOrder() {
return ByteOrder.BIG_ENDIAN;
}
@Nonnull
@Override
public MessageDigests mpw_hash() {
return MessageDigests.SHA256;
}
@Nonnull
@Override
public MessageAuthenticationDigests mpw_digest() {
return MessageAuthenticationDigests.HmacSHA256;
@@ -211,16 +221,19 @@ public class MPAlgorithmV0 extends MPAlgorithm {
// Utilities
@Nonnull
@Override
public byte[] toBytes(final int number) {
return ByteBuffer.allocate( Integer.SIZE / Byte.SIZE ).order( mpw_byteOrder() ).putInt( number ).array();
}
@Nonnull
@Override
public byte[] toBytes(final UnsignedInteger number) {
return ByteBuffer.allocate( Integer.SIZE / Byte.SIZE ).order( mpw_byteOrder() ).putInt( number.intValue() ).array();
}
@Nonnull
@Override
public byte[] toBytes(final char[] characters) {
ByteBuffer byteBuffer = mpw_charset().encode( CharBuffer.wrap( characters ) );
@@ -232,6 +245,7 @@ public class MPAlgorithmV0 extends MPAlgorithm {
return bytes;
}
@Nonnull
@Override
public byte[] toID(final byte[] bytes) {
return mpw_hash().of( bytes );

View File

@@ -19,6 +19,7 @@
package com.lyndir.masterpassword.impl;
import com.lyndir.masterpassword.*;
import javax.annotation.Nonnull;
/**
@@ -29,6 +30,7 @@ public class MPAlgorithmV1 extends MPAlgorithmV0 {
// Configuration
@Nonnull
@Override
public Version version() {
return MPAlgorithm.Version.V1;

View File

@@ -19,6 +19,7 @@
package com.lyndir.masterpassword.impl;
import com.lyndir.masterpassword.MPAlgorithm;
import javax.annotation.Nonnull;
/**
@@ -29,6 +30,7 @@ public class MPAlgorithmV2 extends MPAlgorithmV1 {
// Configuration
@Nonnull
@Override
public Version version() {
return MPAlgorithm.Version.V2;

View File

@@ -19,6 +19,7 @@
package com.lyndir.masterpassword.impl;
import com.lyndir.masterpassword.MPAlgorithm;
import javax.annotation.Nonnull;
/**
@@ -29,6 +30,7 @@ public class MPAlgorithmV3 extends MPAlgorithmV2 {
// Configuration
@Nonnull
@Override
public Version version() {
return MPAlgorithm.Version.V3;