ProtectStar™ iCrypter™

Supremely secure
message encryption app
that's got a whole lot going for it.



Available on appstore


Keep your incoming and outgoing messages totally secure.

Any time you send an SMS, e-mail, or iMessage™, it's like sending a postcard in that the message can potentially be read by any Internet user. Which means that all such messages are totally open, non-secured, and modifiable.

E-mails and text messages are particularly vulnerable in this regard, as they pass through numerous server node points on their way to their destination and can be read, copied and/or modified anywhere along the way. Thus your messages can be read by anyone, just like the messages on the back of a postcard.


































Impregnable encryption, military style.

iCrypter™ is a small and extremely powerful encryption app that encrypts your confidential messages using the 256 bit AES (Advanced Encryption Standard) algorithm. This encryption technology is one of the most impregnable available today and is used to encrypt top secret government, industrial and military documents.

The encryption process is carried out right in your device, and its symmetrical cryptography guarantees that your messages can be read solely by their intended recipients.

With this app, you can ensure that all of your sensitive incoming and outgoing messages are impregnably secure, whether they be transmitted via e-mail, WhatsApp™, iMessage™, Facebook™ or Twitter™. iCrypter™ also enables you to save encrypted texts to your clipboard for use in other messages.

Application examples

iCrypter™ can be used for confidential correspondence between and within:

  • Large companies
  • Domestic or foreign company divisions or sites
  • Attorneys, tax consultants and clients
  • Investment bankers
  • Stock brokers and institutional investors
  • M&A







  • iCrypter™ also supports encryption of photo, video and document attachments

    Any time you send an SMS, e-mail, or iMessage™, it's like sending a postcard in that the message can potentially be read by any Internet user. Which means that all such messages are totally open, non-secured, and modifiable.

    E-mails and text messages are particularly vulnerable in this regard, as they pass through numerous server node points on their way to their destination and can be read, copied and/or modified anywhere along the way. Thus your messages can be read by anyone, just like the messages on the back of a postcard.






  • The iCrypter™ address book

    With iCrypter™, you can store encryption passwords together with the contact details for specific recipients in a separate iCrypter™ Contacts Tool, which functions independently of your Apple™ contacts.

    What's more, the iCrypter™ Contacts Tool is also protected
    by 256 bit AES encryption against loss or unauthorized access.




    All data remains encrypted in the absence of authentication

    iCrypter™ uses the practical and secure linear (4 x 4) password entry process, in lieu of conventional password protection.
    This technology enables you to protect your iCrypter™ application against unauthorized access.






  • An automatic-delete function - just in case

    In the event your Apple™ device is lost or stolen, you need not worry about your contacts and secret encryption passwords stored in iCrypter™ falling into unauthorized hands, because with the automatic-delete function activated the app can be configured so that all of your stored settings such as your bookmarks will be deleted automatically after five invalid passwords are entered.

    Moreover, the entirety of your data is deleted, along with all of your iCrypter™ apps settings, in such a way that they cannot be recovered, in accordance with military security standards such as the US Department of Defense's DoD 5220.22-M E method.

    The deletion technology for this process is based on prize winning ProtectStar™ iShredder™ technology.





Communicate with everyone at any time
with confidence















Besides text messages and e-mails, you can also use iCrypter™ to send secure twitter, Facebook™ and Skype™ messages.
This allows for impregnably secure social media interaction with friends or groups that have your secret password.

* iCrypter™ must be installed with both parties. Please use encryption for good.
Encrypting and/or transmitting illegal material is punishable by US and international laws.

iCrypter™ features

Features iCrypter™
Powerful encryption app using 256 bit AES (Advanced Encryption Standard) algorithm check
Source code of used encryption algorithm is open for public to review on ProtectStar‘s website check
Keep your incoming and outgoing messages totally secure check
Symmetrical cryptography guarantees that your messages can be read solely by their intended recipients check
All sensitive incoming and outgoing messages are secure, whether they be transmitted via e-mail, WhatsApp™, iMessage™, Facebook™, Skype™ or Twitter™ check
Intuitive User friendly Interface check
Send encrypted voice records check
Save encrypted texts to your clipboard for use in other messages/apps check
Intelligent hyperlink function: a message recipient need only click on an incoming message in order to read it check
High-secure iCrypter™ Favorite Contact Book which functions independently of your Apple™ contacts, is encrypted with 256 bit AES check
Secure linear (4x4) password entry process against unauthorized access check
Supports the encryption of photo, video and document attachments check
Integrated state-of-the-art ,Fail Safe Protection‘ security module invented by ProtectStar™ check
Allows impregnably secure social-media interaction with friends or groups that have your secret password check
Preview files directly inside of iCrypter™ check
Universal app: optimized for iPhone™, iPod™ touch and iPad™ incl. Retina display check
   
appStore button

No backdoor

The security experts at ProtectStar™ guarantee that iCrypter™ contains no hidden back door or master key.

Hence in the interest of transparency, the symmetrical encryption algorithm used in iCrypter™ is made available to users as a download for proprietary validation and analysis purposes.

View source code

{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;}
{\colortbl;\red255\green255\blue255;\red92\green38\blue153;\red46\green13\blue110;\red38\green71\blue75;
\red170\green13\blue145;\red100\green56\blue32;\red0\green116\blue0;\red28\green0\blue207;}
\margl1440\margr1440\vieww13580\viewh11980\viewkind0
\deftab529
\pard\tx529\pardeftab529\pardirnatural

\f0\fs22 \cf0 \CocoaLigature0 \
// Process encrypting text with password\
\
+ (\cf2 NSString\cf0 *) encryptText:(\cf2 NSString\cf0 *)text andPassword:(\cf2 NSString\cf0 *)password\
\{\
\cf2 NSData\cf0  *textData = [text \cf3 dataUsingEncoding\cf0 :\cf3 NSUTF8StringEncoding\cf0 ];\
\cf2 NSData\cf0  *encryptedTextData =  [[[textData \cf4 AES256EncryptedDataUsingKey\cf0 :password \cf4 error\cf0 :\cf5 nil\cf0 ] \cf3 retain\cf0 ] \cf3 autorelease\cf0 ];\
\cf5 return\cf0  encryptedTextData;\
\}\
\
\
\
//Implement protocol CommonCrypter of NSData\
\
\cf5 @implementation\cf0  NSData (CommonCryptor)\
\
- (\cf2 NSData\cf0  *) AES256EncryptedDataUsingKey: (\cf5 id\cf0 ) key error: (\cf2 NSError\cf0  **) error\
\{\
\cf2 CCCryptorStatus\cf0  status = \cf3 kCCSuccess\cf0 ;\
\cf2 NSData\cf0  * result = [\cf5 self\cf0  \cf4 dataEncryptedUsingAlgorithm\cf0 : \cf3 kCCAlgorithmAES128\cf0 \
                                            \cf4 key\cf0 : key\
                                        \cf4 options\cf0 : \cf3 kCCOptionPKCS7Padding\cf0 \
                                          \cf4 error\cf0 : &status];\
\
\cf5 if\cf0  ( result != \cf5 nil\cf0  )\
\cf5 return\cf0  ( result );\
\
\cf5 if\cf0  ( error != \cf5 NULL\cf0  )\
*error = [\cf2 NSError\cf0  \cf4 errorWithCCCryptorStatus\cf0 : status];\
\
\cf5 return\cf0  ( \cf5 nil\cf0  );\
\}\
\
\
\
- (\cf2 NSData\cf0  *) dataEncryptedUsingAlgorithm: (\cf2 CCAlgorithm\cf0 ) algorithm\
                             key: (\cf5 id\cf0 ) key\
                         options: (\cf2 CCOptions\cf0 ) options\
                           error: (\cf2 CCCryptorStatus\cf0  *) error\
\{\
\cf5 return\cf0  ( [\cf5 self\cf0  \cf4 dataEncryptedUsingAlgorithm\cf0 : algorithm\
                                   \cf4 key\cf0 : key\
                  \cf4 initializationVector\cf0 : \cf5 nil\cf0 \
                               \cf4 options\cf0 : options\
                                 \cf4 error\cf0 : error] );\
\}\
\
\
- (\cf2 NSData\cf0  *) dataEncryptedUsingAlgorithm: (\cf2 CCAlgorithm\cf0 ) algorithm\
                             key: (\cf5 id\cf0 ) key\
            initializationVector: (\cf5 id\cf0 ) iv\
                         options: (\cf2 CCOptions\cf0 ) options\
                           error: (\cf2 CCCryptorStatus\cf0  *) error\
\{\
\cf2 CCCryptorRef\cf0  cryptor = \cf5 NULL\cf0 ;\
\cf2 CCCryptorStatus\cf0  status = \cf3 kCCSuccess\cf0 ;\
\
\cf6 NSParameterAssert\cf0 ([key \cf3 isKindOfClass\cf0 : [\cf2 NSData\cf0  \cf3 class\cf0 ]] || [key \cf3 isKindOfClass\cf0 : [\cf2 NSString\cf0  \cf3 class\cf0 ]]);\
\cf6 NSParameterAssert\cf0 (iv == \cf5 nil\cf0  || [iv \cf3 isKindOfClass\cf0 : [\cf2 NSData\cf0  \cf3 class\cf0 ]] || [iv \cf3 isKindOfClass\cf0 : [\cf2 NSString\cf0  \cf3 class\cf0 ]]);\
\
\cf2 NSMutableData\cf0  * keyData, * ivData;\
\cf5 if\cf0  ( [key \cf3 isKindOfClass\cf0 : [\cf2 NSData\cf0  \cf3 class\cf0 ]] )\
keyData = (\cf2 NSMutableData\cf0  *) [key \cf3 mutableCopy\cf0 ];\
\cf5 else\cf0 \
keyData = [[key \cf3 dataUsingEncoding\cf0 : \cf3 NSUTF8StringEncoding\cf0 ] \cf3 mutableCopy\cf0 ];\
\
\cf5 if\cf0  ( [iv \cf3 isKindOfClass\cf0 : [\cf2 NSString\cf0  \cf3 class\cf0 ]] )\
ivData = [[iv \cf3 dataUsingEncoding\cf0 : \cf3 NSUTF8StringEncoding\cf0 ] \cf3 mutableCopy\cf0 ];\
\cf5 else\cf0 \
ivData = (\cf2 NSMutableData\cf0  *) [iv \cf3 mutableCopy\cf0 ];	\cf7 // data or nil\cf0 \
\
[keyData \cf3 autorelease\cf0 ];\
[ivData \cf3 autorelease\cf0 ];\
\
\cf7 // ensure correct lengths for key and iv data, based on algorithms\cf0 \
\cf4 FixKeyLengths\cf0 ( algorithm, keyData, ivData );\
\
status = \cf3 CCCryptorCreate\cf0 ( \cf3 kCCEncrypt\cf0 , algorithm, options,\
                      [keyData \cf3 bytes\cf0 ], [keyData \cf3 length\cf0 ], [ivData \cf3 bytes\cf0 ],\
                      &cryptor );\
\
\cf5 if\cf0  ( status != \cf3 kCCSuccess\cf0  )\
\{\
\cf5 if\cf0  ( error != \cf5 NULL\cf0  )\
    *error = status;\
\cf5 return\cf0  ( \cf5 nil\cf0  );\
\}\
\
\cf2 NSData\cf0  * result = [\cf5 self\cf0  \cf4 _runCryptor\cf0 : cryptor \cf4 result\cf0 : &status];\
\cf5 if\cf0  ( (result == \cf5 nil\cf0 ) && (error != \cf5 NULL\cf0 ) )\
*error = status;\
\
\cf3 CCCryptorRelease\cf0 ( cryptor );\
\
\cf5 return\cf0  ( result );\
\}\
\
\cf5 static\cf0  \cf5 void\cf0  FixKeyLengths( \cf2 CCAlgorithm\cf0  algorithm, \cf2 NSMutableData\cf0  * keyData, \cf2 NSMutableData\cf0  * ivData )\
\{\
\cf2 NSUInteger\cf0  keyLength = [keyData \cf3 length\cf0 ];\
\cf5 switch\cf0  ( algorithm )\
\{\
\cf5 case\cf0  \cf3 kCCAlgorithmAES128\cf0 :\
\{\
    \cf5 if\cf0  ( keyLength < \cf8 16\cf0  )\
    \{\
        [keyData \cf3 setLength\cf0 : \cf8 16\cf0 ];\
    \}\
    \cf5 else\cf0  \cf5 if\cf0  ( keyLength < \cf8 24\cf0  )\
    \{\
        [keyData \cf3 setLength\cf0 : \cf8 24\cf0 ];\
    \}\
    \cf5 else\cf0 \
    \{\
        [keyData \cf3 setLength\cf0 : \cf8 32\cf0 ];\
    \}\
    \
    \cf5 break\cf0 ;\
\}\
    \
\cf5 default\cf0 :\
    \cf5 break\cf0 ;\
\}\
\
[ivData \cf3 setLength\cf0 : [keyData \cf3 length\cf0 ]];\
\}\
\
\
- (\cf2 NSData\cf0  *) _runCryptor: (\cf2 CCCryptorRef\cf0 ) cryptor result: (\cf2 CCCryptorStatus\cf0  *) status\
\{\
\cf2 size_t\cf0  bufsize = \cf3 CCCryptorGetOutputLength\cf0 ( cryptor, (\cf2 size_t\cf0 )[\cf5 self\cf0  \cf3 length\cf0 ], \cf5 true\cf0  );\
\cf5 void\cf0  * buf = \cf3 malloc\cf0 ( bufsize );\
\cf2 size_t\cf0  bufused = \cf8 0\cf0 ;\
\cf2 size_t\cf0  bytesTotal = \cf8 0\cf0 ;\
*status = \cf3 CCCryptorUpdate\cf0 ( cryptor, [\cf5 self\cf0  \cf3 bytes\cf0 ], (\cf2 size_t\cf0 )[\cf5 self\cf0  \cf3 length\cf0 ], \
                      buf, bufsize, &bufused );\
\cf5 if\cf0  ( *status != \cf3 kCCSuccess\cf0  )\
\{\
\cf3 free\cf0 ( buf );\
\cf5 return\cf0  ( \cf5 nil\cf0  );\
\}\
\
bytesTotal += bufused;\
\
*status = \cf3 CCCryptorFinal\cf0 ( cryptor, buf + bufused, bufsize - bufused, &bufused );\
\cf5 if\cf0  ( *status != \cf3 kCCSuccess\cf0  )\
\{\
\cf3 free\cf0 ( buf );\
\cf5 return\cf0  ( \cf5 nil\cf0  );\
\}\
\
bytesTotal += bufused;\
\
\cf5 return\cf0  ( [\cf2 NSData\cf0  \cf3 dataWithBytesNoCopy\cf0 : buf \cf3 length\cf0 : bytesTotal] );\
\}\
\
@end\
\
}
                    

No hidden fees

Unlike other encryption solutions that engage in practices such as charging per encrypted messages, with iCrypter™ you'll never have to pay a dime in additional fees.

Once you've download iCrypter™ from the AppStore, you can send as many secure messages as you wish and will only be charged your provider's regular fee as indicated in your cell phone contract.