diff --git a/Android.mk b/Android.mk
index 2ff96b7..4db0d3b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,7 +28,7 @@
 		serializable.cpp
 LOCAL_C_INCLUDES := \
 	$(LOCAL_PATH)/include
-LOCAL_CFLAGS = -Wall -Werror
+LOCAL_CFLAGS = -Wall -Werror -Wunused
 LOCAL_MODULE_TAGS := optional
 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
@@ -73,7 +73,8 @@
 LOCAL_C_INCLUDES := \
 	$(LOCAL_PATH)/include
 LOCAL_SHARED_LIBRARIES := libcrypto libkeymaster_messages
-LOCAL_CFLAGS = -Wall -Werror
+LOCAL_CFLAGS = -Wall -Werror -Wunused
+LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field
 # Ignore benigh warnings for now.
 LOCAL_CLANG_CFLAGS += -Wno-error=unused-private-field
 LOCAL_MODULE_TAGS := optional
@@ -99,8 +100,8 @@
 LOCAL_C_INCLUDES := \
 	system/security/keystore \
 	$(LOCAL_PATH)/include
-LOCAL_CFLAGS = -Wall -Werror
-LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable
+LOCAL_CFLAGS = -Wall -Werror -Wunused
+LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field
 LOCAL_SHARED_LIBRARIES := libkeymaster_messages libkeymaster1 liblog libcrypto
 LOCAL_MODULE_TAGS := optional
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
@@ -122,7 +123,8 @@
 	keymaster_enforcement_test.cpp
 LOCAL_C_INCLUDES := \
 	$(LOCAL_PATH)/include
-LOCAL_CFLAGS = -Wall -Werror
+LOCAL_CFLAGS = -Wall -Werror -Wunused
+LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field
 LOCAL_MODULE_TAGS := tests
 LOCAL_SHARED_LIBRARIES := \
 	libsoftkeymasterdevice \
diff --git a/android_keymaster_test.cpp b/android_keymaster_test.cpp
index f567c72..0f7beea 100644
--- a/android_keymaster_test.cpp
+++ b/android_keymaster_test.cpp
@@ -33,7 +33,7 @@
 extern "C" {
 int __android_log_print(int prio, const char* tag, const char* fmt);
 int __android_log_print(int prio, const char* tag, const char* fmt) {
-    prio, tag, fmt;
+    (void)prio, (void)tag, (void)fmt;
     return 0;
 }
 }  // extern "C"
diff --git a/hkdf.cpp b/hkdf.cpp
index 5c69446..331f8e5 100644
--- a/hkdf.cpp
+++ b/hkdf.cpp
@@ -47,6 +47,8 @@
         result = prk_hmac.Init(zeros, sizeof(zeros));
     }
     assert(result);
+    // avoid the unused variable warning if asserts are disabled.
+    (void) result;
 
     // |prk| is a pseudorandom key (of kSHA256HashLength octets).
     uint8_t prk[kSHA256HashLength];
diff --git a/rsa_operation.cpp b/rsa_operation.cpp
index 4b66b34..fac3ae7 100644
--- a/rsa_operation.cpp
+++ b/rsa_operation.cpp
@@ -28,8 +28,6 @@
 
 namespace keymaster {
 
-static const int MIN_PSS_SALT_LEN = 8 /* salt len */ + 2 /* overhead */;
-
 /* static */
 EVP_PKEY* RsaOperationFactory::GetRsaKey(const Key& key, keymaster_error_t* error) {
     const RsaKey* rsa_key = static_cast<const RsaKey*>(&key);
