Merge branch 'master' of github.com:Lyndir/MasterPassword
Conflicts: .gitmodules
This commit is contained in:
		
							
								
								
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -13,9 +13,9 @@
 | 
			
		||||
[submodule "External/RHStatusItemView"]
 | 
			
		||||
	path = External/RHStatusItemView
 | 
			
		||||
	url = git://github.com/lhunath/RHStatusItemView.git
 | 
			
		||||
[submodule "External/DCIntrospect"]
 | 
			
		||||
	path = External/DCIntrospect
 | 
			
		||||
	url = https://github.com/lhunath/DCIntrospect.git
 | 
			
		||||
[submodule "External/LoveLyndir"]
 | 
			
		||||
	path = External/LoveLyndir
 | 
			
		||||
	url = git://github.com/Lyndir/love-lyndir.client.git
 | 
			
		||||
[submodule "External/DCIntrospect"]
 | 
			
		||||
	path = External/DCIntrospect
 | 
			
		||||
	url = https://github.com/lhunath/DCIntrospect.git
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										0
									
								
								MasterPassword/Java/.mvn-tools
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								MasterPassword/Java/.mvn-tools
									
									
									
									
									
										Normal file
									
								
							@@ -32,10 +32,16 @@ public class MPTemplates extends MetaObject {
 | 
			
		||||
        this.templates = templates;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static MPTemplates load() {
 | 
			
		||||
 | 
			
		||||
        return loadFromPList( "ciphers.plist" );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static MPTemplates loadFromPList(final String templateResource) {
 | 
			
		||||
 | 
			
		||||
        @SuppressWarnings("IOResourceOpenedButNotSafelyClosed")
 | 
			
		||||
        InputStream templateStream = Thread.currentThread().getContextClassLoader().getResourceAsStream( templateResource );
 | 
			
		||||
        Preconditions.checkNotNull( templateStream, "Not found: %s", templateResource );
 | 
			
		||||
        try {
 | 
			
		||||
            NSObject plistObject = PropertyListParser.parse( templateStream );
 | 
			
		||||
            Preconditions.checkState( NSDictionary.class.isAssignableFrom( plistObject.getClass() ) );
 | 
			
		||||
@@ -98,6 +104,6 @@ public class MPTemplates extends MetaObject {
 | 
			
		||||
 | 
			
		||||
    public static void main(final String... arguments) {
 | 
			
		||||
 | 
			
		||||
        loadFromPList( "templates.plist" );
 | 
			
		||||
        load();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,7 @@ public abstract class MasterPassword {
 | 
			
		||||
    private static final ByteOrder                    MP_byteOrder = ByteOrder.BIG_ENDIAN;
 | 
			
		||||
    private static final MessageDigests               MP_hash      = MessageDigests.SHA256;
 | 
			
		||||
    private static final MessageAuthenticationDigests MP_mac       = MessageAuthenticationDigests.HmacSHA256;
 | 
			
		||||
    private static final MPTemplates                  templates    = MPTemplates.loadFromPList( "templates.plist" );
 | 
			
		||||
    private static final MPTemplates                  templates    = MPTemplates.load();
 | 
			
		||||
 | 
			
		||||
    public static byte[] keyForPassword(final String password, final String username) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -29,30 +29,49 @@
 | 
			
		||||
        <plugins>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-jar-plugin</artifactId>
 | 
			
		||||
                <configuration>
 | 
			
		||||
                    <archive>
 | 
			
		||||
                        <manifest>
 | 
			
		||||
                            <mainClass>com.lyndir.lhunath.masterpassword.CLI</mainClass>
 | 
			
		||||
                            <addClasspath>true</addClasspath>
 | 
			
		||||
                            <classpathPrefix>lib/</classpathPrefix>
 | 
			
		||||
                        </manifest>
 | 
			
		||||
                    </archive>
 | 
			
		||||
                </configuration>
 | 
			
		||||
                <artifactId>maven-antrun-plugin</artifactId>
 | 
			
		||||
                <version>1.7</version>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>prepare-package</id>
 | 
			
		||||
                        <phase>prepare-package</phase>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <target>
 | 
			
		||||
                                <chmod file="${project.build.directory}/install" perm="755"/>
 | 
			
		||||
                            </target>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>run</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
            </plugin>
 | 
			
		||||
            <plugin>
 | 
			
		||||
                <groupId>org.apache.maven.plugins</groupId>
 | 
			
		||||
                <artifactId>maven-dependency-plugin</artifactId>
 | 
			
		||||
                <version>2.4</version>
 | 
			
		||||
                <artifactId>maven-shade-plugin</artifactId>
 | 
			
		||||
                <version>2.2</version>
 | 
			
		||||
                <executions>
 | 
			
		||||
                    <execution>
 | 
			
		||||
                        <id>copy-dependencies</id>
 | 
			
		||||
                        <phase>package</phase>
 | 
			
		||||
                        <goals>
 | 
			
		||||
                            <goal>copy-dependencies</goal>
 | 
			
		||||
                            <goal>shade</goal>
 | 
			
		||||
                        </goals>
 | 
			
		||||
                        <configuration>
 | 
			
		||||
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
 | 
			
		||||
                            <transformers>
 | 
			
		||||
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
 | 
			
		||||
                                    <mainClass>com.lyndir.lhunath.masterpassword.CLI</mainClass>
 | 
			
		||||
                                </transformer>
 | 
			
		||||
                            </transformers>
 | 
			
		||||
                            <filters>
 | 
			
		||||
                                <filter>
 | 
			
		||||
                                    <artifact>*:*</artifact>
 | 
			
		||||
                                    <excludes>
 | 
			
		||||
                                        <exclude>META-INF/*.SF</exclude>
 | 
			
		||||
                                        <exclude>META-INF/*.DSA</exclude>
 | 
			
		||||
                                        <exclude>META-INF/*.RSA</exclude>
 | 
			
		||||
                                    </excludes>
 | 
			
		||||
                                </filter>
 | 
			
		||||
                            </filters>
 | 
			
		||||
                        </configuration>
 | 
			
		||||
                    </execution>
 | 
			
		||||
                </executions>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1958
									
								
								MasterPassword/Java/masterpassword-cli/src/main/scripts/bashlib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1958
									
								
								MasterPassword/Java/masterpassword-cli/src/main/scripts/bashlib
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										56
									
								
								MasterPassword/Java/masterpassword-cli/src/main/scripts/install
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								MasterPassword/Java/masterpassword-cli/src/main/scripts/install
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
#
 | 
			
		||||
# Install the Master Password CLI tool.
 | 
			
		||||
set -e
 | 
			
		||||
cd "${BASH_SOURCE%/*}"
 | 
			
		||||
source bashlib
 | 
			
		||||
 | 
			
		||||
inf "This will install the mpw tool."
 | 
			
		||||
 | 
			
		||||
# Try to guess then ask for the bin dir to install to.
 | 
			
		||||
IFS=: read -a paths <<< "$PATH"
 | 
			
		||||
if inArray ~/bin "${paths[@]}"; then
 | 
			
		||||
    bindir=~/bin
 | 
			
		||||
elif inArray ~/.bin "${paths[@]}"; then
 | 
			
		||||
    bindir=~/.bin
 | 
			
		||||
elif inArray /usr/local/bin "${paths[@]}"; then
 | 
			
		||||
    bindir=/usr/local/bin
 | 
			
		||||
else
 | 
			
		||||
    bindir=~/bin
 | 
			
		||||
fi
 | 
			
		||||
bindir=$(ask -d "$bindir" "What bin directory should I install to?")
 | 
			
		||||
[[ -d "$bindir" ]] || mkdir "$bindir" || ftl 'Cannot create missing bin directory: %s' "$bindir" || exit
 | 
			
		||||
[[ -w "$bindir" ]] || ftl 'Cannot write to bin directory: %s' "$bindir" || exit
 | 
			
		||||
 | 
			
		||||
# Try to guess then ask for the share dir to install to.
 | 
			
		||||
sharedir=$(cd -P "$bindir/.."; [[ $bindir = */.bin ]] && printf '%s/.share' "$PWD" || printf '%s/share' "$PWD")
 | 
			
		||||
sharedir=$(ask -d "$sharedir" "What share directory should I install to?")
 | 
			
		||||
[[ -d "$sharedir" ]] || mkdir "$sharedir" || ftl 'Cannot create missing share directory: %s' "$sharedir" || exit
 | 
			
		||||
[[ -w "$sharedir" ]] || ftl 'Cannot write to share directory: %s' "$sharedir" || exit
 | 
			
		||||
 | 
			
		||||
# Install Master Password.
 | 
			
		||||
sharepath=$sharedir/masterpassword
 | 
			
		||||
mkdir -p "$sharepath"
 | 
			
		||||
cp -a "masterpassword-cli-"*".jar" bashlib mpw "$sharepath"
 | 
			
		||||
ex -c "%s~%SHAREPATH%~$sharepath~g|x" "$sharepath/mpw"
 | 
			
		||||
ln -sf "$sharepath/mpw" "$bindir/mpw"
 | 
			
		||||
chmod +x "$sharepath/mpw"
 | 
			
		||||
[[ ! -e "$bindir/bashlib" ]] && ln -s "$sharepath/bashlib" "$bindir/bashlib" ||:
 | 
			
		||||
 | 
			
		||||
# Convenience bash function.
 | 
			
		||||
inf "Installation successful!"
 | 
			
		||||
echo
 | 
			
		||||
inf "To improve usability, you can install an mpw function in your bash shell."
 | 
			
		||||
inf "This function adds the following features:"
 | 
			
		||||
inf "  - Ask the Master Password once, remember in the shell."
 | 
			
		||||
inf "  - Automatically put the password in the clipboard (some platforms)."
 | 
			
		||||
echo
 | 
			
		||||
inf "To do this you need the following function in ~/.bashrc:\n%s" "$(<mpw.bashrc)"
 | 
			
		||||
echo
 | 
			
		||||
inf "We can do this for you automatically now."
 | 
			
		||||
if ask -c Y!n "Append the mpw function to your .bashrc?"; then
 | 
			
		||||
    cat mpw.bashrc >> ~/.bashrc
 | 
			
		||||
    inf "Done!  Don't forget to run '%s' to apply the changes!" "source ~/.bashrc"
 | 
			
		||||
fi
 | 
			
		||||
echo
 | 
			
		||||
inf "To begin using Master Password, type: mpw [site name]"
 | 
			
		||||
@@ -5,5 +5,5 @@
 | 
			
		||||
# Uncomment this to hardcode your master password.  Make sure this file's permissions are tight.  Master Password will not ask you for your master password anymore.  This is probably not a good idea.
 | 
			
		||||
# export MP_PASSWORD="banana colored duckling"
 | 
			
		||||
 | 
			
		||||
cd "${BASH_SOURCE[0]%/*}"
 | 
			
		||||
java -jar masterpassword-cli-GIT-SNAPSHOT.jar "$@"
 | 
			
		||||
cd "%SHAREPATH%"
 | 
			
		||||
exec java -jar masterpassword-cli-GIT-SNAPSHOT.jar "$@"
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
source bashlib
 | 
			
		||||
mpw() {
 | 
			
		||||
    _nocopy() { echo >&2 "$(cat)"; }
 | 
			
		||||
    _copy() { "$(type -P pbcopy || type -P xclip || echo _nocopy)"; }
 | 
			
		||||
 | 
			
		||||
    # Empty the clipboard
 | 
			
		||||
    :| _copy 2>/dev/null
 | 
			
		||||
 | 
			
		||||
    # Ask for the user's name and password if not yet known.
 | 
			
		||||
    MP_USERNAME=${MP_USERNAME:-$(ask -s 'Your Full Name:')}
 | 
			
		||||
    MP_PASSWORD=${MP_PASSWORD:-$(ask -s 'Master Password:')}
 | 
			
		||||
 | 
			
		||||
    # Start Master Password and copy the output.
 | 
			
		||||
    printf %s "$(MP_USERNAME=$MP_USERNAME MP_PASSWORD=$MP_PASSWORD command mpw "$@")" | _copy
 | 
			
		||||
}
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
    <modules>
 | 
			
		||||
        <module>masterpassword-algorithm</module>
 | 
			
		||||
        <module>masterpassword-cli</module>
 | 
			
		||||
        <module>masterpassword-android</module>
 | 
			
		||||
        <!--module>masterpassword-android</module-->
 | 
			
		||||
    </modules>
 | 
			
		||||
 | 
			
		||||
    <!-- REMOTE ARTIFACT REPOSITORIES -->
 | 
			
		||||
 
 | 
			
		||||
@@ -274,7 +274,7 @@ PearlAssociatedObjectProperty(NSManagedObjectContext*, MainManagedObjectContext,
 | 
			
		||||
 | 
			
		||||
#pragma mark - UbiquityStoreManagerDelegate
 | 
			
		||||
 | 
			
		||||
- (NSManagedObjectContext *)managedObjectContextForUbiquityChangesInManager:(UbiquityStoreManager *)manager {
 | 
			
		||||
- (NSManagedObjectContext *)ubiquityStoreManager:(UbiquityStoreManager *)manager managedObjectContextForUbiquityChanges:(NSNotification *)note {
 | 
			
		||||
 | 
			
		||||
    return [self mainManagedObjectContextIfReady];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4510" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="KZF-fe-y9n">
 | 
			
		||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4514" systemVersion="13A3028" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="KZF-fe-y9n">
 | 
			
		||||
    <dependencies>
 | 
			
		||||
        <deployment defaultVersion="1536" identifier="iOS"/>
 | 
			
		||||
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
 | 
			
		||||
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
 | 
			
		||||
    </dependencies>
 | 
			
		||||
    <scenes>
 | 
			
		||||
        <!--Type View Controller - Type-->
 | 
			
		||||
 
 | 
			
		||||
@@ -15,9 +15,11 @@
 | 
			
		||||
		93D395F08A087F8A24689347 /* NSArray+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */; };
 | 
			
		||||
		93D396AA30690B256F30378A /* PearlNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3956915634581E737B38C /* PearlNavigationController.m */; };
 | 
			
		||||
		93D396BA1C74C4A06FD86437 /* PearlOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D3942A356B639724157982 /* PearlOverlay.h */; };
 | 
			
		||||
		93D397952F5635C793C24DF1 /* NSError+MPFullDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39F9106F2CCFB94283188 /* NSError+MPFullDescription.m */; };
 | 
			
		||||
		93D3992FA1546E01F498F665 /* PearlNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D398567FD02DB2647B8CF3 /* PearlNavigationController.h */; };
 | 
			
		||||
		93D399433EA75E50656040CB /* Twitter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D394077F8FAB8167647187 /* Twitter.framework */; };
 | 
			
		||||
		93D399BBC0A7EC746CB1B19B /* MPLogsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D391943675426839501BB8 /* MPLogsViewController.h */; };
 | 
			
		||||
		93D39B842AB9A5D072810D76 /* NSError+MPFullDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D398C95847261903D781D3 /* NSError+MPFullDescription.h */; };
 | 
			
		||||
		93D39C34FE35830EF5BE1D2A /* NSArray+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D396D04E57792A54D437AC /* NSArray+Indexing.h */; };
 | 
			
		||||
		93D39C8AD8EAB747856B3A8C /* LLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3923B42DA2DA18F287092 /* LLModel.m */; };
 | 
			
		||||
		93D39E281E3658B30550CB55 /* NSDictionary+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */; };
 | 
			
		||||
@@ -423,6 +425,7 @@
 | 
			
		||||
		93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLogsViewController.m; sourceTree = "<group>"; };
 | 
			
		||||
		93D3983278751A530262F64E /* LLConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLConfig.h; sourceTree = "<group>"; };
 | 
			
		||||
		93D398567FD02DB2647B8CF3 /* PearlNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlNavigationController.h; sourceTree = "<group>"; };
 | 
			
		||||
		93D398C95847261903D781D3 /* NSError+MPFullDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+MPFullDescription.h"; sourceTree = "<group>"; };
 | 
			
		||||
		93D39A28369954D147E239BA /* MPSetupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSetupViewController.m; sourceTree = "<group>"; };
 | 
			
		||||
		93D39A3CC4D8330831FC8CB4 /* LLToggleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLToggleViewController.h; sourceTree = "<group>"; };
 | 
			
		||||
		93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Indexing.m"; sourceTree = "<group>"; };
 | 
			
		||||
@@ -430,6 +433,7 @@
 | 
			
		||||
		93D39BF6BCBDFFE844E7D34C /* LLButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLButtonView.m; sourceTree = "<group>"; };
 | 
			
		||||
		93D39C8E26B06F01566785B7 /* LLToggleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLToggleViewController.m; sourceTree = "<group>"; };
 | 
			
		||||
		93D39F7C9F47BF6387FBC5C3 /* PearlEMail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlEMail.h; sourceTree = "<group>"; };
 | 
			
		||||
		93D39F9106F2CCFB94283188 /* NSError+MPFullDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSError+MPFullDescription.m"; sourceTree = "<group>"; };
 | 
			
		||||
		DA04E33D14B1E70400ECA4F3 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
 | 
			
		||||
		DA30E9CB15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+PearlMutableInfo.h"; sourceTree = "<group>"; };
 | 
			
		||||
		DA30E9CC15722ECA00A68B4C /* NSBundle+PearlMutableInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+PearlMutableInfo.m"; sourceTree = "<group>"; };
 | 
			
		||||
@@ -2693,6 +2697,8 @@
 | 
			
		||||
				DAFE45F515039823003ABA7C /* PearlStringUtils.m */,
 | 
			
		||||
				DAFE45F815039823003ABA7C /* README */,
 | 
			
		||||
				DAFE45F915039823003ABA7C /* Resources */,
 | 
			
		||||
				93D39F9106F2CCFB94283188 /* NSError+MPFullDescription.m */,
 | 
			
		||||
				93D398C95847261903D781D3 /* NSError+MPFullDescription.h */,
 | 
			
		||||
			);
 | 
			
		||||
			path = Pearl;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
@@ -2886,6 +2892,7 @@
 | 
			
		||||
				DA5E5C7417248959003798D8 /* sha256.h in Headers */,
 | 
			
		||||
				DA5E5C7517248959003798D8 /* sysendian.h in Headers */,
 | 
			
		||||
				DA5E5C7617248959003798D8 /* warn.h in Headers */,
 | 
			
		||||
				93D39B842AB9A5D072810D76 /* NSError+MPFullDescription.h in Headers */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
@@ -3088,6 +3095,9 @@
 | 
			
		||||
					DA5BFA43147E415C00F98B1E = {
 | 
			
		||||
						DevelopmentTeam = HL3Q45LX9N;
 | 
			
		||||
						SystemCapabilities = {
 | 
			
		||||
							com.apple.BackgroundModes = {
 | 
			
		||||
								enabled = 0;
 | 
			
		||||
							};
 | 
			
		||||
							com.apple.DataProtection = {
 | 
			
		||||
								enabled = 1;
 | 
			
		||||
							};
 | 
			
		||||
@@ -3403,7 +3413,7 @@
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
			shellPath = "/bin/bash -e";
 | 
			
		||||
			shellScript = "../../../External/Crashlytics.framework/run \\\n    \"$(/usr/libexec/PlistBuddy -c \"Print :'API Key'\" ../../Resources/Crashlytics/Crashlytics.plist)\"";
 | 
			
		||||
			shellScript = "../../../External/Crashlytics.framework/run \\\n    \"$(/usr/libexec/PlistBuddy -c \"Print :'API Key'\" ../../Resources/Crashlytics/Crashlytics.plist)\" || [[ $DEPLOYMENT_LOCATION != YES ]]";
 | 
			
		||||
			showEnvVarsInLog = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXShellScriptBuildPhase section */
 | 
			
		||||
@@ -3531,6 +3541,7 @@
 | 
			
		||||
				DA3509FF15F101A500C14A8E /* PearlQueue.m in Sources */,
 | 
			
		||||
				93D3922A53E41A54832E90D9 /* PearlOverlay.m in Sources */,
 | 
			
		||||
				93D396AA30690B256F30378A /* PearlNavigationController.m in Sources */,
 | 
			
		||||
				93D397952F5635C793C24DF1 /* NSError+MPFullDescription.m in Sources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
@@ -3822,7 +3833,8 @@
 | 
			
		||||
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
 | 
			
		||||
				CLANG_ENABLE_OBJC_ARC = YES;
 | 
			
		||||
				CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Maarten Billemont (DWGU95U4ZD)";
 | 
			
		||||
				CODE_SIGN_IDENTITY = "iPhone Developer";
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
			
		||||
				EXCLUDED_SOURCE_FILE_NAMES = libTestFlight.a;
 | 
			
		||||
				GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "MasterPassword-Info.plist";
 | 
			
		||||
@@ -3831,6 +3843,7 @@
 | 
			
		||||
					"-framework",
 | 
			
		||||
					Reveal,
 | 
			
		||||
				);
 | 
			
		||||
				PROVISIONING_PROFILE = "";
 | 
			
		||||
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "EBD2A2E4-AEC3-4EEA-8FF0-5F1A0D9FFA1C";
 | 
			
		||||
				SKIP_INSTALL = NO;
 | 
			
		||||
				TARGETED_DEVICE_FAMILY = 1;
 | 
			
		||||
@@ -3844,11 +3857,13 @@
 | 
			
		||||
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
 | 
			
		||||
				CLANG_ENABLE_OBJC_ARC = YES;
 | 
			
		||||
				CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont (HL3Q45LX9N)";
 | 
			
		||||
				CODE_SIGN_IDENTITY = "iPhone Developer";
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
			
		||||
				COPY_PHASE_STRIP = YES;
 | 
			
		||||
				EXCLUDED_SOURCE_FILE_NAMES = "";
 | 
			
		||||
				GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "MasterPassword-Info.plist";
 | 
			
		||||
				PROVISIONING_PROFILE = "";
 | 
			
		||||
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "4CBD21E7-DB60-4F7F-80F8-98DFA83D2CE0";
 | 
			
		||||
				SKIP_INSTALL = NO;
 | 
			
		||||
				STRIP_INSTALLED_PRODUCT = YES;
 | 
			
		||||
@@ -3975,7 +3990,8 @@
 | 
			
		||||
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
 | 
			
		||||
				CLANG_ENABLE_OBJC_ARC = YES;
 | 
			
		||||
				CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont (HL3Q45LX9N)";
 | 
			
		||||
				CODE_SIGN_IDENTITY = "iPhone Developer";
 | 
			
		||||
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 | 
			
		||||
				COPY_PHASE_STRIP = YES;
 | 
			
		||||
				EXCLUDED_SOURCE_FILE_NAMES = (
 | 
			
		||||
					libTestFlight.a,
 | 
			
		||||
@@ -3983,6 +3999,7 @@
 | 
			
		||||
				);
 | 
			
		||||
				GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
 | 
			
		||||
				INFOPLIST_FILE = "MasterPassword-Info.plist";
 | 
			
		||||
				PROVISIONING_PROFILE = "";
 | 
			
		||||
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "6C6B84DD-9D8F-4321-BD77-5F737DBE1778";
 | 
			
		||||
				SKIP_INSTALL = NO;
 | 
			
		||||
				STRIP_INSTALLED_PRODUCT = YES;
 | 
			
		||||
 
 | 
			
		||||
@@ -28,16 +28,6 @@
 | 
			
		||||
      shouldUseLaunchSchemeArgsEnv = "YES"
 | 
			
		||||
      buildConfiguration = "Debug-iOS">
 | 
			
		||||
      <Testables>
 | 
			
		||||
         <TestableReference
 | 
			
		||||
            skipped = "NO">
 | 
			
		||||
            <BuildableReference
 | 
			
		||||
               BuildableIdentifier = "primary"
 | 
			
		||||
               BlueprintIdentifier = "DADEF42E1810D5530052CA3E"
 | 
			
		||||
               BuildableName = "LoveLyndirTests.xctest"
 | 
			
		||||
               BlueprintName = "LoveLyndirTests"
 | 
			
		||||
               ReferencedContainer = "container:MasterPassword-iOS.xcodeproj">
 | 
			
		||||
            </BuildableReference>
 | 
			
		||||
         </TestableReference>
 | 
			
		||||
      </Testables>
 | 
			
		||||
      <MacroExpansion>
 | 
			
		||||
         <BuildableReference
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ shopt -s extglob
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Submodules that need to be checked out.
 | 
			
		||||
dependencies=( External/{FontReplacer,InAppSettingsKit,Pearl{,:External/jrswizzle,:External/uicolor-utilities,:External/iOSPorts},google-plus-ios-sdk,UbiquityStoreManager,RHStatusItemView} )
 | 
			
		||||
dependencies=( External/{FontReplacer,InAppSettingsKit,Pearl{,:External/jrswizzle,:External/uicolor-utilities,:External/iOSPorts},google-plus-ios-sdk,UbiquityStoreManager,RHStatusItemView,LoveLyndir,DCIntrospect} )
 | 
			
		||||
 | 
			
		||||
## Custom migration.
 | 
			
		||||
# None yet.
 | 
			
		||||
 
 | 
			
		||||
@@ -19,10 +19,18 @@ h1, h2, h3, h4 {
 | 
			
		||||
    margin-top: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
section {
 | 
			
		||||
    padding: 1ex 0;
 | 
			
		||||
 | 
			
		||||
    text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.content {
 | 
			
		||||
    padding-top: 100px;
 | 
			
		||||
    width: 940px;
 | 
			
		||||
    margin: auto;
 | 
			
		||||
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    text-align: initial;
 | 
			
		||||
}
 | 
			
		||||
.box {
 | 
			
		||||
    display:                    inline-block;
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,12 @@
 | 
			
		||||
            </div>
 | 
			
		||||
        </header>
 | 
			
		||||
 | 
			
		||||
        <section>
 | 
			
		||||
            Get it for:
 | 
			
		||||
            <a title="iPhone, iPad, iPod touch" href="http://itunes.apple.com/app/id510296984">iPhone</a> |
 | 
			
		||||
            <a title="Mac, Linux, UNIX, Windows (command line interface)" href="masterpassword-cli.zip">PC (CLI)</a>
 | 
			
		||||
        </section>
 | 
			
		||||
 | 
			
		||||
        <section><div class="content">
 | 
			
		||||
        
 | 
			
		||||
            <div class="thumb clearfix">
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								Site/2013-05/masterpassword-cli.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Site/2013-05/masterpassword-cli.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user