More Master Password availability.
This commit is contained in:
		
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@@ -8,7 +8,9 @@ It consists of an algorithm that implements the core idea and applications for v
 | 
			
		||||
 | 
			
		||||
To skip the intro and go straight to the information on how to use the code, [click here](#source-code).
 | 
			
		||||
 | 
			
		||||
Master Password is available for [iOS](#macos-or-ios), [macOS](#macos-or-ios), [Android](#java), [Desktop](#java), and [Console](#c).
 | 
			
		||||
Master Password is available for [iOS](https://itunes.apple.com/app/id510296984), [macOS](https://ssl.masterpasswordapp.com/masterpassword-mac.zip), [Android](https://ssl.masterpasswordapp.com/masterpassword-android.apk), [Desktop](https://ssl.masterpasswordapp.com/masterpassword-gui.jar), and [Console](https://ssl.masterpasswordapp.com/masterpassword-cli.tar.gz).
 | 
			
		||||
 | 
			
		||||
Master Password is also available from the following package managers: mac OS: [Homebrew](https://brew.sh/).  Get in touch if you are interested in adding Master Password to any other package managers.
 | 
			
		||||
 | 
			
		||||
## What is a password?
 | 
			
		||||
 | 
			
		||||
@@ -67,7 +69,11 @@ In short:
 | 
			
		||||
 | 
			
		||||
    master-key = SCRYPT( user-name, master-password )
 | 
			
		||||
    site-key = HMAC-SHA-256( site-name . site-counter, master-key )
 | 
			
		||||
    site-password = PW-TEMPLATE( site-key, template )
 | 
			
		||||
    site-password = PW-TEMPLATE( site-key, site-template )
 | 
			
		||||
 | 
			
		||||
Master Password can derive the `site-password` in an entirely stateless manner.  It is therefore better defined as a calculator than a manager.  It is the user's responsibility to remember the inputs: `user-name`, `master-password`, `site-name`, `site-counter` and `site-template`.
 | 
			
		||||
 | 
			
		||||
We standardize `user-name` as your full name, `site-name` as the domain name of the site, `site-counter` to `1` (unless you explicitly increment it) and `site-template` to `Long Password`; as a result the only token the user really needs to remember actively is `master-password`.
 | 
			
		||||
 | 
			
		||||
# Source Code
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Scheme
 | 
			
		||||
   LastUpgradeVersion = "0710"
 | 
			
		||||
   LastUpgradeVersion = "0820"
 | 
			
		||||
   version = "1.3">
 | 
			
		||||
   <BuildAction
 | 
			
		||||
      parallelizeBuildables = "YES"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Scheme
 | 
			
		||||
   LastUpgradeVersion = "0710"
 | 
			
		||||
   LastUpgradeVersion = "0820"
 | 
			
		||||
   version = "1.3">
 | 
			
		||||
   <BuildAction
 | 
			
		||||
      parallelizeBuildables = "YES"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Scheme
 | 
			
		||||
   LastUpgradeVersion = "0710"
 | 
			
		||||
   LastUpgradeVersion = "0820"
 | 
			
		||||
   version = "1.3">
 | 
			
		||||
   <BuildAction
 | 
			
		||||
      parallelizeBuildables = "YES"
 | 
			
		||||
 
 | 
			
		||||
@@ -3202,7 +3202,7 @@
 | 
			
		||||
			isa = PBXProject;
 | 
			
		||||
			attributes = {
 | 
			
		||||
				CLASSPREFIX = MP;
 | 
			
		||||
				LastUpgradeCheck = 0700;
 | 
			
		||||
				LastUpgradeCheck = 0820;
 | 
			
		||||
				ORGANIZATIONNAME = Lyndir;
 | 
			
		||||
				TargetAttributes = {
 | 
			
		||||
					DA32D01F19D111C6004F3F0E = {
 | 
			
		||||
@@ -3820,6 +3820,7 @@
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
			
		||||
@@ -3841,15 +3842,18 @@
 | 
			
		||||
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				DSTROOT = "/tmp/${PRODUCT_NAME}.dst";
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				ENABLE_TESTABILITY = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_OPTIMIZATION_LEVEL = 0;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = (
 | 
			
		||||
@@ -3881,6 +3885,7 @@
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = NO;
 | 
			
		||||
				GCC_WARN_UNKNOWN_PRAGMAS = NO;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_LABEL = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VALUE = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
@@ -3888,7 +3893,7 @@
 | 
			
		||||
					"\"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/$(PLATFORM_NAME)/include\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
				);
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				ONLY_ACTIVE_ARCH = YES;
 | 
			
		||||
				OTHER_LDFLAGS = "-ObjC";
 | 
			
		||||
				PRODUCT_NAME = "${TARGET_NAME}";
 | 
			
		||||
@@ -3905,6 +3910,7 @@
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
			
		||||
@@ -3927,6 +3933,7 @@
 | 
			
		||||
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
 | 
			
		||||
@@ -3934,8 +3941,10 @@
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				DSTROOT = "/tmp/${PRODUCT_NAME}.dst";
 | 
			
		||||
				ENABLE_NS_ASSERTIONS = NO;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = (
 | 
			
		||||
					"ADHOC=1",
 | 
			
		||||
@@ -3968,6 +3977,7 @@
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
			
		||||
				GCC_WARN_UNKNOWN_PRAGMAS = NO;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_LABEL = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VALUE = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
@@ -3975,7 +3985,7 @@
 | 
			
		||||
					"\"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/$(PLATFORM_NAME)/include\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
				);
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				OTHER_LDFLAGS = "-ObjC";
 | 
			
		||||
				PRODUCT_NAME = "${TARGET_NAME}";
 | 
			
		||||
				PUBLIC_HEADERS_FOLDER_PATH = include;
 | 
			
		||||
@@ -4003,7 +4013,7 @@
 | 
			
		||||
				);
 | 
			
		||||
				GCC_PREFIX_HEADER = "Source/MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "Source/iOS/MasterPassword-Info.plist";
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = (
 | 
			
		||||
					"\"$(SRCROOT)/External/Pearl/Pearl-Crypto/lib\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
@@ -4042,7 +4052,7 @@
 | 
			
		||||
				);
 | 
			
		||||
				GCC_PREFIX_HEADER = "Source/MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "Source/iOS/MasterPassword-Info.plist";
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = (
 | 
			
		||||
					"\"$(SRCROOT)/External/Pearl/Pearl-Crypto/lib\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
@@ -4070,6 +4080,7 @@
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
 | 
			
		||||
				CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
			
		||||
@@ -4092,6 +4103,7 @@
 | 
			
		||||
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
 | 
			
		||||
@@ -4099,8 +4111,10 @@
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				DSTROOT = "/tmp/${PRODUCT_NAME}.dst";
 | 
			
		||||
				ENABLE_NS_ASSERTIONS = NO;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = gnu99;
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = (
 | 
			
		||||
					"APPSTORE=1",
 | 
			
		||||
@@ -4133,6 +4147,7 @@
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
			
		||||
				GCC_WARN_UNKNOWN_PRAGMAS = NO;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_LABEL = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VALUE = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
@@ -4140,7 +4155,7 @@
 | 
			
		||||
					"\"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/$(PLATFORM_NAME)/include\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
				);
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 6.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				OTHER_LDFLAGS = "-ObjC";
 | 
			
		||||
				PRODUCT_NAME = "${TARGET_NAME}";
 | 
			
		||||
				PUBLIC_HEADERS_FOLDER_PATH = include;
 | 
			
		||||
@@ -4170,7 +4185,7 @@
 | 
			
		||||
				);
 | 
			
		||||
				GCC_PREFIX_HEADER = "Source/MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "Source/iOS/MasterPassword-Info.plist";
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 | 
			
		||||
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = (
 | 
			
		||||
					"\"$(SRCROOT)/External/Pearl/Pearl-Crypto/lib\"",
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Scheme
 | 
			
		||||
   LastUpgradeVersion = "0710"
 | 
			
		||||
   LastUpgradeVersion = "0820"
 | 
			
		||||
   version = "1.3">
 | 
			
		||||
   <BuildAction
 | 
			
		||||
      parallelizeBuildables = "YES"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Scheme
 | 
			
		||||
   LastUpgradeVersion = "0710"
 | 
			
		||||
   LastUpgradeVersion = "0820"
 | 
			
		||||
   version = "1.3">
 | 
			
		||||
   <BuildAction
 | 
			
		||||
      parallelizeBuildables = "YES"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user