Foil Pics

Rating: 
4.586205
Your rating: None Average: 4.6 (29 votes)

Foil Pics allows you to encrypt some pictures from the gallery with a password stronger than the lock code. Strictly speaking, each picture is encrypted with a unique random 256-bit AES key which in turn is encrypted with an RSA key which in turn is encrypted with your password. If the bad guys get your encrypted pictures, they would have to crack the AES key (different for each picture) or the RSA key (shared by all pictures but harder to crack) in order to extract the content. If they get the encrypted RSA key as well, then they can brute force your password. So in the end, the encryption is as strong as your password.

The format of the encrypted file is described here.

The RSA key is stored in ~/.local/share/foil/foil.key - you can copy it from one device to another. Using the same RSA key on different devices, protected with different passwords, is actually not such a bad idea. If you forget the password, you can use the backup key to decrypt the images, assuming that it has a different password that you still remember.

Note that you can add your encrypted files and the Foil key to the backup with the help of My Backup app.

Source code: https://github.com/monich/harbour-foilpics

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-foilpics-1.0.23-1.aarch64.rpm282.91 KB27/11/2021 - 22:36
File harbour-foilpics-1.0.23-1.armv7hl.rpm258.45 KB27/11/2021 - 22:36
File harbour-foilpics-1.0.23-1.i486.rpm294.54 KB27/11/2021 - 22:36
File harbour-foilpics-1.0.22-1.aarch64.rpm279.56 KB14/11/2021 - 07:49
File harbour-foilpics-1.0.22-1.armv7hl.rpm254.92 KB14/11/2021 - 07:49
File harbour-foilpics-1.0.22-1.i486.rpm290.69 KB14/11/2021 - 07:49
File harbour-foilpics-1.0.21-1.armv7hl.rpm648.76 KB06/11/2021 - 20:40
File harbour-foilpics-1.0.21-1.i486.rpm761.57 KB06/11/2021 - 20:40
File harbour-foilpics-1.0.20-1.aarch64.rpm279.71 KB24/10/2021 - 19:14
File harbour-foilpics-1.0.20-1.armv7hl.rpm253.99 KB24/10/2021 - 19:14
File harbour-foilpics-1.0.20-1.i486.rpm289.05 KB24/10/2021 - 19:14
File harbour-foilpics-1.0.19-1.aarch64.rpm279.95 KB24/10/2021 - 04:13
File harbour-foilpics-1.0.19-1.armv7hl.rpm253.97 KB24/10/2021 - 04:13
File harbour-foilpics-1.0.19-1.i486.rpm289.16 KB24/10/2021 - 04:13
File harbour-foilpics-1.0.18-1.aarch64.rpm278.03 KB08/09/2021 - 04:58
File harbour-foilpics-1.0.18-1.armv7hl.rpm253.12 KB08/09/2021 - 04:58
File harbour-foilpics-1.0.18-1.i486.rpm287.11 KB08/09/2021 - 04:58
File harbour-foilpics-1.0.17-1.aarch64.rpm272.51 KB25/07/2021 - 06:43
File harbour-foilpics-1.0.17-1.armv7hl.rpm247.35 KB25/07/2021 - 06:43
File harbour-foilpics-1.0.17-1.i486.rpm281.85 KB25/07/2021 - 06:43
File harbour-foilpics-1.0.16-22.1.aarch64.rpm257.38 KB27/03/2021 - 22:32
File harbour-foilpics-1.0.16-22.1.armv7hl.rpm224.74 KB27/03/2021 - 22:32
File harbour-foilpics-1.0.16-22.1.i486.rpm277.01 KB27/03/2021 - 22:32
File harbour-foilpics-1.0.15-21.1.armv7hl.rpm222 KB19/02/2021 - 14:31
File harbour-foilpics-1.0.15-21.1.i486.rpm274.2 KB19/02/2021 - 14:31
File harbour-foilpics-1.0.14-20.1.armv7hl.rpm224.79 KB21/11/2020 - 22:42
File harbour-foilpics-1.0.14-20.1.i486.rpm277.25 KB21/11/2020 - 22:42
File harbour-foilpics-1.0.13-19.1.armv7hl.rpm220.23 KB05/01/2020 - 04:38
File harbour-foilpics-1.0.13-19.1.i486.rpm272.15 KB05/01/2020 - 04:38
File harbour-foilpics-1.0.12-18.1.armv7hl.rpm220.2 KB04/12/2019 - 05:11
File harbour-foilpics-1.0.12-18.1.i486.rpm272.52 KB04/12/2019 - 05:11
File harbour-foilpics-1.0.11-17.1.armv7hl.rpm219.24 KB04/12/2019 - 02:33
File harbour-foilpics-1.0.11-17.1.i486.rpm271.24 KB04/12/2019 - 02:33
File harbour-foilpics-1.0.10-16.1.armv7hl.rpm218.93 KB09/11/2019 - 19:22
File harbour-foilpics-1.0.10-16.1.i486.rpm270.56 KB09/11/2019 - 19:22
File harbour-foilpics-1.0.8-11.1.armv7hl.rpm201.69 KB11/11/2018 - 23:03
File harbour-foilpics-1.0.8-11.1.i486.rpm250.99 KB11/11/2018 - 23:03
File harbour-foilpics-1.0.7-10.1.armv7hl.rpm198.85 KB25/06/2018 - 12:32
File harbour-foilpics-1.0.7-10.1.i486.rpm248.06 KB25/06/2018 - 12:32
File harbour-foilpics-1.0.6-9.1.armv7hl.rpm196.17 KB04/03/2018 - 13:23
File harbour-foilpics-1.0.6-9.1.i486.rpm242.49 KB04/03/2018 - 13:23
File harbour-foilpics-1.0.5-8.1.armv7hl.rpm190.51 KB16/02/2018 - 23:02
File harbour-foilpics-1.0.5-8.1.i486.rpm237.62 KB16/02/2018 - 23:02
File harbour-foilpics-1.0.4-7.1.armv7hl.rpm188.99 KB15/02/2018 - 02:03
File harbour-foilpics-1.0.4-7.1.i486.rpm234.6 KB15/02/2018 - 02:03
File harbour-foilpics-1.0.2-5.1.armv7hl.rpm147.54 KB11/12/2017 - 20:26
File harbour-foilpics-1.0.2-5.1.i486.rpm181.81 KB11/12/2017 - 20:26
File harbour-foilpics-1.0.1-4.1.armv7hl.rpm144.45 KB10/12/2017 - 14:58
File harbour-foilpics-1.0.1-4.1.i486.rpm178.56 KB10/12/2017 - 14:58
File harbour-foilpics-1.0.0-3.1.armv7hl.rpm132.5 KB02/12/2017 - 19:54
File harbour-foilpics-1.0.0-3.1.i486.rpm165.84 KB02/12/2017 - 19:54
Changelog: 
  • 1.0.23 (Nov 27 2021)
    - Decryption corner cases (handle missing directory, avoid overwriting)
    - Delete multiple gallery images more accurately
    - Assorted UI tweaks
  • 1.0.22 (Nov 14 2021)
    - Load libcrypto.so dynamically in 32-bit builds
  • 1.0.21 (Nov 6 2021)
    - Link OpenSSL 1.0 statically for compatibility with Sailfish OS 4.3
  • 1.0.20 (Oct 24 2021)
    - Optimization (avoid creating unnecessary sharing components)
  • 1.0.19 (Oct 24 2021)
    - Support for the new out-of-process sharing
    - Updated Polish translation (Atlochowski)
  • 1.0.18 (Sep 8 2021)
    - Link all Qt_5_PRIVATE_API functions dynamically
  • 1.0.17 (Jul 25 2021)
    - Allow to copy image details to clipboard
    - Handle the case when in-app sharing is unavailable
  • 1.0.16 (Mar 27 2021)
    - Added image details item to the context menu
    - Miscellaneous UI tweaks
    - Provided 64-bit package
  • 1.0.15 (Feb 19 2021)
    - Fixed selection of multiple encrypted photos (Juho Hämäläinen)
    - Integration with My Backup
  • 1.0.14 (Nov 21 2020)
    - Adapted to changes in Sailfish OS
    - Polished landscape layouts
    - Fixed EncryptedPage hint behavior
    - Replaced Animators (which suck) back with Animations
  • 1.0.13 (Jan 5 2020)
    - Delay autolock by 15 seconds
    - Tweaked key generation UI
    - Improved Chinese translation (@dashinfantry)
  • 1.0.12 (Dec 4 2019)
    - Updated Chinese translation (@dashinfantry)
  • 1.0.11 (Dec 4 2019)
    - Fixed details view for unecrypted pictures
    - Better check for password being too short
    - Minor UI tweaks
  • 1.0.10 (Nov 9 2019)
    - New selection UI
    - Improved landscape layouts
    - A few fancy bells and whistles here and there
    - Translation fixes
    - Chinese translation (@dashinfantry)
  • 1.0.9 (broken)
  • 1.0.8 (Nov 11 2018)
    - Support for light ambiances in Sailfish 3.0
    - Minor UI and performance improvements
  • 1.0.7 (Jun 23 2018)
    - Freshened up the list of sharing methods
    - Use attached pages in the main view
    - Trying to improve QML performance
    - Avoid unnecessary overwrites of info file
    - No more ContextMenu deprecation warnings
    - Updated French, German and Polish translations
  • 1.0.6 (Mar 4 2018)
    - Fixed compatibility with Sailfish OS 2.0
    - Performance improvements
  • 1.0.5 (Feb 16 2018)
    - Fixed a problem with deleting multiple encrypted pictures
    - Proper support for images larger than maximum texture size
    - Added Hungarian translations
    - Updated French translations
  • 1.0.4 (Feb 14 2018)
    - Support for multiple selection
    - Encrypted images can be grouped
    - Dutch translations
    - Polish translations
    - Spanish translations
  • 1.0.3 (broken)
  • 1.0.2 (Dec 11 2017)
    - Navigation between images in fullscreen mode
    - Swedish translations
    - German translations
  • 1.0.1 (Dec 10 2017)
    - Details page for encrypted and gallery images
    - Title of the encrypted image is editable (via details page)
    - French translations
  • 1.0.0 (Dec 2 2017)
    - Initial version

Comments

Pemek's picture

Hi,
Found a bug/design flaw for decoding pictures. I have an old pictures encrypted taken originally from sd card. I the meantime I have changed sd, so id (and path) of an sd card contents has changed. Now, to decrypt those old pictures I had to make a temporary symbolic link with old path (saw an error in the logs). My proposal is to decrypt to standard pictures directory if old, original path does not exist.

slava's picture

Thank you for the report, the app does indeed try to restore the file in its original form (path, time stamp and so on) but apparently some corner cases like then one you have described, are not handled properly. Will do something about it when I have time!

Pemek's picture

Excellent. Looking forward to test it:)

slava's picture

I have fixed all the corner cases that I could think of in version 1.0.23

TMavica's picture

No 64 bit package find

slava's picture

Only 32-bit packages were affected by this change because only those are being linked with OpenSSL 1.0 (previously dynamically, now statically - at the expense of a noticeable size change) for compatibility with the older releases of the OS which didn't have OpenSSL 1.1. 64-bit packages have been linked against OpenSSL 1.1 from the very beginning. I can provide a 64-bit build 1.0.21 too but it's going to be absolutely identical to the 1.0.20.

BTW if you have a 32-bit device and prefer to install a smaller package dynamically linked with OpenSSL 1.1 you can pick one from Chum area of the public Sailfish OS OBS.

lpr's picture

https://openrepos.net/comment/39253#comment-39253

 

where are your sources of openssl1.0.2 ? You simply include the library statically and we should believe that things are all right?

 

all we know is: https://github.com/monich/harbour-foilpics/blob/master/rpm/harbour-foilp... "BuildRequires: openssl-static"

slava's picture

Downloading a Chum build more or less guarantees that the statically linked version is the original one provided by Jolla. If you choose to download rpm from OpenRepos - yes, you have to trust me that I actually built it in OBS, the rpm is not signed or anything.

lpr's picture

don't do that. Don't link openssl1.0 anymore and in no way statically. There is 1.1.1l available here (Jolla1 aka JollaPhone too): https://openrepos.net/content/lpr/curl

All other devices can update to at least SFOS4.0.

slava's picture

What's wrong with openssl1.0, really. My apps only use MD5, SHA, AES and RSA, are there any known critical bugs in openssl1.0 wrt those algorithms? I highly doubt that. IMO bending over backwards in order to always link against the most recent version of openssl isn't worth the trouble, at least in my case.

lpr's picture

don't link security-critical stuff statically. And why? Everyone can install openssl1.1

slava's picture

It's the only way to build an rpm compatible with both systems that don't have openssl1.0 and those that don't have openssl1.1. That's why.

It doesn't matter how you link openssl1.0, dynamically or statically, since it's no longer being maintained.

And if everyone can install openssl1.1 then everyone can rebuild my apps and link them with whatever they like!

lpr's picture

those who don't have it (Jolla1) can install it, I don't see the point.

The only requirement is Glibc 2.17 which is really quite old... (before SFOS2.0 I think)

TMavica's picture

Is it possible to hide the video too?

slava's picture

That's much harder than an image. The entire image can be decrypted in memory, you can't do that with a video. Keep your videos on an encrypted SD-card))

dfstorm's picture

Hi :) feature request ^^' : would it be possible to integrate the video too ?

usernamenotavailable's picture

I want this too please

vrn99's picture

I'm using an Intex Aqua fish converted to Jolla C. Just to clarify, I have only encrypted ~200 pictures but for some reason while decrypting, it goes beyong 900 pictures and crashes.

vrn99's picture

Hi, for some reason I'm unable to decrypt the encrypted pictures. I've encrypted around 200 pictures but while decrypting it goes beyong 900 pics and then crashes (I'm guessing due to OOM). Any idea how I can get around this?

slava's picture

Let me try to reproduce it. Sounds like a bug. I have to admit that I never tried to encrypt or decrypt that many pictures at once. What kind of device do you have?

minitreintje's picture

Does this app has any kind of logging?

slava's picture

It's all taken out in the release build. Debug build - yes.

minitreintje's picture

I still encounter crashes when selecting multiple pictures and try to delete them.

slava's picture

So far I haven't been able to reproduce the crash but there's clearly something wrong with deletion of multiple encrypted images. I'll check it out. If you come up with a reliable way to reproduce the crash, pelase let me know.

TMavica's picture

It keeps crashing when I decrypt or encrypt...

and the photo in encrypt is doubled...

 

slava's picture

Double picture must be the consequence of the crash (one of images is most likely the thumbnail). Apparently, the app is crashing when it's trying to write the info file, the one that maps encrypted images to thumbnails and groups.

Can you provide step-by-step instructions on how to reproduce the crash?

TMavica's picture

cant...because it happened suddenly. I tried decrypt all image (keep crashing), after encrypt again, crashed and relaunch the app, i saw they are doubled again

slava's picture

Yes, I was able to crash it with "Select all" -> "Decrypt"! Thank you, will fix it.

TMavica's picture

Thanks

slava's picture

The crashes should be fixed in 1.0.4, let me know if something is still wrong!

Pages