From 40981bd7bd6e6451a00f3a22dbe41c61045f8b86 Mon Sep 17 00:00:00 2001 From: Brian Pellin Date: Sat, 24 Jan 2009 17:10:23 -0600 Subject: [PATCH] Initial import. --- .classpath | 6 + .project | 33 + AndroidManifest.xml | 16 + COPYING.gpl-2.0 | 339 +++++++++ LICENSE | 67 ++ res/drawable/keepass_icon.png | Bin 0 -> 43652 bytes res/layout/entry_view.xml | 53 ++ res/layout/list.xml | 12 + res/layout/password.xml | 31 + res/layout/row.xml | 4 + res/values/strings.xml | 21 + src/com/android/keepass/EntryActivity.java | 140 ++++ src/com/android/keepass/GroupActivity.java | 99 +++ src/com/android/keepass/KeePass.java | 179 +++++ src/com/android/keepass/PwEntryView.java | 50 ++ src/com/android/keepass/PwGroupView.java | 51 ++ src/com/android/keepass/PwItemView.java | 42 ++ src/com/android/keepass/PwListAdapter.java | 95 +++ src/com/android/keepass/R.java | 52 ++ src/org/bouncycastle1/crypto/BlockCipher.java | 56 ++ .../crypto/BufferedBlockCipher.java | 322 +++++++++ .../crypto/CipherParameters.java | 8 + .../bouncycastle1/crypto/CryptoException.java | 26 + .../crypto/DataLengthException.java | 29 + src/org/bouncycastle1/crypto/Digest.java | 51 ++ .../bouncycastle1/crypto/ExtendedDigest.java | 13 + .../crypto/InvalidCipherTextException.java | 27 + src/org/bouncycastle1/crypto/Mac.java | 71 ++ .../crypto/PBEParametersGenerator.java | 142 ++++ .../crypto/RuntimeCryptoException.java | 26 + .../bouncycastle1/crypto/SecureRandom.java | 138 ++++ .../crypto/digests/GeneralDigest.java | 135 ++++ .../crypto/digests/LongDigest.java | 375 ++++++++++ .../crypto/digests/SHA1Digest.java | 294 ++++++++ .../crypto/digests/SHA256Digest.java | 291 ++++++++ .../crypto/digests/SHA512Digest.java | 87 +++ .../crypto/engines/AESEngine.java | 547 ++++++++++++++ .../crypto/engines/TwofishEngine.java | 677 ++++++++++++++++++ .../PKCS5S1ParametersGenerator.java | 119 +++ .../PKCS5S2ParametersGenerator.java | 151 ++++ src/org/bouncycastle1/crypto/macs/HMac.java | 199 +++++ .../crypto/modes/CBCBlockCipher.java | 233 ++++++ .../crypto/paddings/BlockCipherPadding.java | 48 ++ .../crypto/paddings/PKCS7Padding.java | 74 ++ .../paddings/PaddedBufferedBlockCipher.java | 299 ++++++++ .../crypto/params/KeyParameter.java | 30 + .../crypto/params/ParametersWithIV.java | 39 + .../crypto/params/ParametersWithRandom.java | 36 + .../crypto/prng/DigestRandomGenerator.java | 97 +++ .../crypto/prng/RandomGenerator.java | 38 + src/org/bouncycastle1/util/Arrays.java | 88 +++ .../bouncycastle1/util/encoders/Encoder.java | 17 + src/org/bouncycastle1/util/encoders/Hex.java | 131 ++++ .../util/encoders/HexEncoder.java | 172 +++++ src/org/phoneid/Definition.java | 21 + src/org/phoneid/PhoneIDException.java | 9 + src/org/phoneid/PhoneIDUtil.java | 30 + src/org/phoneid/keepassj2me/ImporterV3.java | 554 ++++++++++++++ src/org/phoneid/keepassj2me/PwDbHeader.java | 84 +++ src/org/phoneid/keepassj2me/PwEntry.java | 129 ++++ src/org/phoneid/keepassj2me/PwGroup.java | 64 ++ src/org/phoneid/keepassj2me/PwManager.java | 192 +++++ src/org/phoneid/keepassj2me/Types.java | 144 ++++ 63 files changed, 7603 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 AndroidManifest.xml create mode 100644 COPYING.gpl-2.0 create mode 100644 LICENSE create mode 100644 res/drawable/keepass_icon.png create mode 100644 res/layout/entry_view.xml create mode 100644 res/layout/list.xml create mode 100644 res/layout/password.xml create mode 100644 res/layout/row.xml create mode 100644 res/values/strings.xml create mode 100644 src/com/android/keepass/EntryActivity.java create mode 100644 src/com/android/keepass/GroupActivity.java create mode 100644 src/com/android/keepass/KeePass.java create mode 100644 src/com/android/keepass/PwEntryView.java create mode 100644 src/com/android/keepass/PwGroupView.java create mode 100644 src/com/android/keepass/PwItemView.java create mode 100644 src/com/android/keepass/PwListAdapter.java create mode 100644 src/com/android/keepass/R.java create mode 100644 src/org/bouncycastle1/crypto/BlockCipher.java create mode 100644 src/org/bouncycastle1/crypto/BufferedBlockCipher.java create mode 100644 src/org/bouncycastle1/crypto/CipherParameters.java create mode 100644 src/org/bouncycastle1/crypto/CryptoException.java create mode 100644 src/org/bouncycastle1/crypto/DataLengthException.java create mode 100644 src/org/bouncycastle1/crypto/Digest.java create mode 100644 src/org/bouncycastle1/crypto/ExtendedDigest.java create mode 100644 src/org/bouncycastle1/crypto/InvalidCipherTextException.java create mode 100644 src/org/bouncycastle1/crypto/Mac.java create mode 100644 src/org/bouncycastle1/crypto/PBEParametersGenerator.java create mode 100644 src/org/bouncycastle1/crypto/RuntimeCryptoException.java create mode 100644 src/org/bouncycastle1/crypto/SecureRandom.java create mode 100644 src/org/bouncycastle1/crypto/digests/GeneralDigest.java create mode 100644 src/org/bouncycastle1/crypto/digests/LongDigest.java create mode 100644 src/org/bouncycastle1/crypto/digests/SHA1Digest.java create mode 100644 src/org/bouncycastle1/crypto/digests/SHA256Digest.java create mode 100644 src/org/bouncycastle1/crypto/digests/SHA512Digest.java create mode 100644 src/org/bouncycastle1/crypto/engines/AESEngine.java create mode 100644 src/org/bouncycastle1/crypto/engines/TwofishEngine.java create mode 100644 src/org/bouncycastle1/crypto/generators/PKCS5S1ParametersGenerator.java create mode 100644 src/org/bouncycastle1/crypto/generators/PKCS5S2ParametersGenerator.java create mode 100644 src/org/bouncycastle1/crypto/macs/HMac.java create mode 100644 src/org/bouncycastle1/crypto/modes/CBCBlockCipher.java create mode 100644 src/org/bouncycastle1/crypto/paddings/BlockCipherPadding.java create mode 100644 src/org/bouncycastle1/crypto/paddings/PKCS7Padding.java create mode 100644 src/org/bouncycastle1/crypto/paddings/PaddedBufferedBlockCipher.java create mode 100644 src/org/bouncycastle1/crypto/params/KeyParameter.java create mode 100644 src/org/bouncycastle1/crypto/params/ParametersWithIV.java create mode 100644 src/org/bouncycastle1/crypto/params/ParametersWithRandom.java create mode 100644 src/org/bouncycastle1/crypto/prng/DigestRandomGenerator.java create mode 100644 src/org/bouncycastle1/crypto/prng/RandomGenerator.java create mode 100644 src/org/bouncycastle1/util/Arrays.java create mode 100644 src/org/bouncycastle1/util/encoders/Encoder.java create mode 100644 src/org/bouncycastle1/util/encoders/Hex.java create mode 100644 src/org/bouncycastle1/util/encoders/HexEncoder.java create mode 100644 src/org/phoneid/Definition.java create mode 100644 src/org/phoneid/PhoneIDException.java create mode 100644 src/org/phoneid/PhoneIDUtil.java create mode 100644 src/org/phoneid/keepassj2me/ImporterV3.java create mode 100644 src/org/phoneid/keepassj2me/PwDbHeader.java create mode 100644 src/org/phoneid/keepassj2me/PwEntry.java create mode 100644 src/org/phoneid/keepassj2me/PwGroup.java create mode 100644 src/org/phoneid/keepassj2me/PwManager.java create mode 100644 src/org/phoneid/keepassj2me/Types.java diff --git a/.classpath b/.classpath new file mode 100644 index 000000000..def5917bf --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.project b/.project new file mode 100644 index 000000000..00d97a63a --- /dev/null +++ b/.project @@ -0,0 +1,33 @@ + + + KeePassDroid + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 000000000..765bd8c3b --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/COPYING.gpl-2.0 b/COPYING.gpl-2.0 new file mode 100644 index 000000000..d511905c1 --- /dev/null +++ b/COPYING.gpl-2.0 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..d418518a2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,67 @@ +The KeePass icon was created by Christopher Bolin and is licensed under the terms of the GPLv2 or GPLv3: + http://commons.wikimedia.org/wiki/File:KeePass_icon.png + +Files under src/org/bouncycaste1x/*: + + Copyright (c) 2000 - 2008 The Legion Of The Bouncy Castle + (http://www.bouncycastle.org) + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +Files under src/org/phoneid/*: + + KeePass for J2ME + + Copyright 2007 Naomaru Itoi + + This file was derived from + + Java clone of KeePass - A KeePass file viewer for Java + Copyright 2006 Bill Zwicky + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Files under src/com/android/keepass/* : + +Copyright 2009 Brian Pellin . + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + diff --git a/res/drawable/keepass_icon.png b/res/drawable/keepass_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3d386b3e61cb5ee8fc61db53b0c66b4bef9cfa9b GIT binary patch literal 43652 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

MNP(n37G5mrYs=3Yg6#A{2z)%+;yXVsf6()4 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 @EDVxr*-7#calvI?P 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 literal 0 HcmV?d00001 diff --git a/res/layout/entry_view.xml b/res/layout/entry_view.xml new file mode 100644 index 000000000..5cfc7e491 --- /dev/null +++ b/res/layout/entry_view.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/list.xml b/res/layout/list.xml new file mode 100644 index 000000000..1faaf266a --- /dev/null +++ b/res/layout/list.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/res/layout/password.xml b/res/layout/password.xml new file mode 100644 index 000000000..80dda9d6f --- /dev/null +++ b/res/layout/password.xml @@ -0,0 +1,31 @@ + + + + + + + + + + +