diff --git a/enzevalos_iphone/SwiftUI/Compose/ComposeModel.swift b/enzevalos_iphone/SwiftUI/Compose/ComposeModel.swift
index 4a85b6453f12d8c9cb413a8144e78f5b19510138..2de6237a3d94070a5218040b814af58a884a7171 100644
--- a/enzevalos_iphone/SwiftUI/Compose/ComposeModel.swift
+++ b/enzevalos_iphone/SwiftUI/Compose/ComposeModel.swift
@@ -26,9 +26,7 @@ class ComposeModel: ObservableObject {
         }
         recipientsModel.parentComposeModel = self
     }
-    
-    // TODO: Add security state functionality
-    
+        
     /// Generates mail and sends it.
     func sendMail() {
         generateMail().send()
@@ -43,6 +41,13 @@ class ComposeModel: ObservableObject {
         for address in addresses {
             model.addNewAddress(address)
         }
+        let frc = PersistentDataProvider.dataProvider.generateFetchedAddresesWithKeyResultsController(addresses: addresses)
+        if let records = frc.fetchedObjects {
+            if encryptionOn && records.count != addresses.count {
+                encryptionOn = false
+            }
+        }
+        
     }
     
     /// Generates OutgoingMail with given email contents.
diff --git a/enzevalos_iphone/SwiftUI/Compose/RecipientFieldModel.swift b/enzevalos_iphone/SwiftUI/Compose/RecipientFieldModel.swift
index 2979c8213f42105a4c4cd9af1e2ff282973f36ab..60215330f2281cb238b03750c82a9533c04fc5fe 100644
--- a/enzevalos_iphone/SwiftUI/Compose/RecipientFieldModel.swift
+++ b/enzevalos_iphone/SwiftUI/Compose/RecipientFieldModel.swift
@@ -70,6 +70,9 @@ class RecipientFieldModel: ObservableObject {
     /// - Parameter _: AddressRecord that gets added to array of recipients.
     func selectContact(_ addressRecord: AddressRecord) {
         selectedContacts.append(addressRecord)
+        if !addressRecord.hasPublicKey {
+            self.parentRecipientModel?.parentComposeModel?.encryptionOn = false
+        }
         text = ""
         suggestions = []
         
@@ -85,8 +88,12 @@ class RecipientFieldModel: ObservableObject {
     ///
     /// - Parameter at: Index of contact to be removed from array of recipients.
     func deselectContact(at index: Int) {
-        selectedContacts.remove(at: index)
+        let addr = selectedContacts[index]
         
+        selectedContacts.remove(at: index)
+        if !addr.hasPublicKey {
+            parentRecipientModel?.checkEncryption()
+        }
         // TODO: See TODO in selectContact.
         parentRecipientModel?.parentComposeModel?.subject += ""
     }
@@ -120,6 +127,9 @@ class RecipientFieldModel: ObservableObject {
             
             if let addresses = frc.fetchedObjects, let addr = addresses.first {
                 self.selectedContacts.append(addr)
+                if !addr.hasPublicKey {
+                    self.parentRecipientModel?.parentComposeModel?.encryptionOn = false
+                }
             }
         }
     }
diff --git a/enzevalos_iphone/SwiftUI/Compose/RecipientsModel.swift b/enzevalos_iphone/SwiftUI/Compose/RecipientsModel.swift
index 1e2c54290c9a45c60fd369f14bc32b89ef54f7f0..ea16a816c1e42ef135b194bbbf8eade47040e8c3 100644
--- a/enzevalos_iphone/SwiftUI/Compose/RecipientsModel.swift
+++ b/enzevalos_iphone/SwiftUI/Compose/RecipientsModel.swift
@@ -32,9 +32,7 @@ class RecipientsModel: ObservableObject {
     /// Used to show or hide Bcc field
     var isEditingCcOrBcc: Bool = false {
         didSet {
-            print("isEditingCcOrBcc: \(isEditingCcOrBcc)")
             updateShowBccField()
-            print("showBccField: \(showBccField)")
         }
     }
     
@@ -79,6 +77,25 @@ class RecipientsModel: ObservableObject {
             || !bccModel.selectedContacts.isEmpty
         ccModel.type = showBccField ? .cc : .ccBcc
     }
+    
+    func checkEncryption() {
+        for addr in toModel.selectedContacts {
+            if !addr.hasPublicKey {
+                return
+            }
+        }
+        for addr in ccModel.selectedContacts {
+            if !addr.hasPublicKey {
+                return
+            }
+        }
+        for addr in bccModel.selectedContacts {
+            if !addr.hasPublicKey {
+                return
+            }
+        }
+        parentComposeModel?.encryptionOn = true
+    }
 }
 
 /// Type of recipient field (to, cc, bcc).