diff --git a/client/src/cmdhfmfdes.c b/client/src/cmdhfmfdes.c
index 3560d5bf3..79c770348 100644
--- a/client/src/cmdhfmfdes.c
+++ b/client/src/cmdhfmfdes.c
@@ -5040,8 +5040,8 @@ static int CmdDesGetSessionParameters(CLIParserContext *ctx, DesfireContext *dct
         uint8_t keydata[200] = {0};
         if (CLIParamHexToBuf(arg_get_str(ctx, keyid), keydata, sizeof(keydata), &keylen))
            return PM3_ESOFT;
-        if (keylen && keylen != key_size(algores)) {
-            PrintAndLogEx(ERR, "%s key must have %d bytes length instead of %d.", CLIGetOptionListStr(DesfireAlgoOpts, algores), key_size(algores), keylen);
+        if (keylen && keylen != desfire_get_key_length(algores)) {
+            PrintAndLogEx(ERR, "%s key must have %d bytes length instead of %d.", CLIGetOptionListStr(DesfireAlgoOpts, algores), desfire_get_key_length(algores), keylen);
             return PM3_EINVARG;
         }
         if (keylen)
@@ -5133,7 +5133,7 @@ static int CmdHF14ADesDefault(const char *Cmd) {
 
     PrintAndLogEx(INFO, "Key Num     : %d", defaultKeyNum);
     PrintAndLogEx(INFO, "Algo        : %s", CLIGetOptionListStr(DesfireAlgoOpts, defaultAlgoId));
-    PrintAndLogEx(INFO, "Key         : %s", sprint_hex(defaultKey, key_size(defaultAlgoId)));
+    PrintAndLogEx(INFO, "Key         : %s", sprint_hex(defaultKey, desfire_get_key_length(defaultAlgoId)));
     PrintAndLogEx(INFO, "KDF algo    : %s", CLIGetOptionListStr(DesfireKDFAlgoOpts, defaultKdfAlgo));
     PrintAndLogEx(INFO, "KDF input   : [%d] %s", defaultKdfInputLen, sprint_hex(defaultKdfInput, defaultKdfInputLen));
     PrintAndLogEx(INFO, "Secure chan : %s", CLIGetOptionListStr(DesfireSecureChannelOpts, defaultSecureChannel));
diff --git a/client/src/mifare/desfire_crypto.c b/client/src/mifare/desfire_crypto.c
index d941ae09e..85abb4c43 100644
--- a/client/src/mifare/desfire_crypto.c
+++ b/client/src/mifare/desfire_crypto.c
@@ -400,24 +400,6 @@ size_t key_block_size(const desfirekey_t key) {
     return desfire_get_key_block_length(key->type);
 }
 
-size_t key_size(const enum DESFIRE_CRYPTOALGO algo) {
-    switch (algo) {
-        case T_DES:
-            return 8;
-            break;
-        case T_3DES:
-            return 16;
-            break;
-        case T_3K3DES:
-            return 24;
-            break;
-        case T_AES:
-            return 16;
-            break;
-    }
-    return 0;    
-}
-
 /*
  * Size of MACing produced with the key.
  */
diff --git a/client/src/mifare/desfire_crypto.h b/client/src/mifare/desfire_crypto.h
index 1aa938017..98f835f4e 100644
--- a/client/src/mifare/desfire_crypto.h
+++ b/client/src/mifare/desfire_crypto.h
@@ -148,7 +148,6 @@ void *mifare_cryto_postprocess_data(desfiretag_t tag, void *data, size_t *nbytes
 void mifare_cypher_single_block(desfirekey_t  key, uint8_t *data, uint8_t *ivect, MifareCryptoDirection direction, MifareCryptoOperation operation, size_t block_size);
 void mifare_cypher_blocks_chained(desfiretag_t tag, desfirekey_t key, uint8_t *ivect, uint8_t *data, size_t data_size, MifareCryptoDirection direction, MifareCryptoOperation operation);
 size_t key_block_size(const desfirekey_t  key);
-size_t key_size(const enum DESFIRE_CRYPTOALGO algo);
 size_t padded_data_length(const size_t nbytes, const size_t block_size);
 size_t maced_data_length(const desfirekey_t  key, const size_t nbytes);
 size_t enciphered_data_length(const desfiretag_t tag, const size_t nbytes, int communication_settings);
diff --git a/client/src/mifare/desfirecore.c b/client/src/mifare/desfirecore.c
index 449f144e2..9b80ede51 100644
--- a/client/src/mifare/desfirecore.c
+++ b/client/src/mifare/desfirecore.c
@@ -234,9 +234,9 @@ void DesfirePrintContext(DesfireContext *ctx) {
     PrintAndLogEx(INFO, "Key num: %d Key algo: %s Key[%d]: %s", 
                         ctx->keyNum, 
                         CLIGetOptionListStr(DesfireAlgoOpts, ctx->keyType), 
-                        key_size(ctx->keyType), 
+                        desfire_get_key_length(ctx->keyType), 
                         sprint_hex(ctx->key, 
-                        key_size(ctx->keyType)));
+                        desfire_get_key_length(ctx->keyType)));
                         
     if (ctx->kdfAlgo != MFDES_KDF_ALGO_NONE)
         PrintAndLogEx(INFO, "KDF algo: %s KDF input[%d]: %s", CLIGetOptionListStr(DesfireKDFAlgoOpts, ctx->kdfAlgo), ctx->kdfInputLen, sprint_hex(ctx->kdfInput, ctx->kdfInputLen));
@@ -248,9 +248,9 @@ void DesfirePrintContext(DesfireContext *ctx) {
                         
     if (DesfireIsAuthenticated(ctx)) {
         PrintAndLogEx(INFO, "Session key MAC [%d]: %s ENC: %s IV [%d]: %s", 
-                            key_size(ctx->keyType), 
-                            sprint_hex(ctx->sessionKeyMAC, key_size(ctx->keyType)), 
-                            sprint_hex(ctx->sessionKeyEnc, key_size(ctx->keyType)),
+                            desfire_get_key_length(ctx->keyType), 
+                            sprint_hex(ctx->sessionKeyMAC, desfire_get_key_length(ctx->keyType)), 
+                            sprint_hex(ctx->sessionKeyEnc, desfire_get_key_length(ctx->keyType)),
                             desfire_get_key_block_length(ctx->keyType),
                             sprint_hex(ctx->sessionKeyEnc, desfire_get_key_block_length(ctx->keyType)));