The 3DES block cipher works by essentially running the block through DES three time. That is, you take the block, and then: - Send it through DES once with a DES key $k_1$ - Send the result of that through DES a second time with a DES key $k_2$ (for this second time we generally run DES backwards; in decrypt rather than encrypt mode, however, that's not important for this question) - Send the result of that through DES a third time with DES key $k_3$. The result of that is the result of the 3DES block operation. Now, 3DES comes in two main flavors: - The "2 key" version; in this version, the 3DES key consists of two DES keys; $k_1$ and $k_2$, and we implicitly assume that $k_1 = k_3$. DES keys are typically represented in 64 bits, and so this version of 3DES has 128 bit keys. - The "3 key" version; in this version, the 3DES key consists of three DES keys; $k_1$, $k_2$ and $k_3$. Because all three 3 DES keys are explicitly represented, this version of 3DES has 192 bit keys. Those are the only standard versions of 3DES; you might have an API which allows 64 bit keys (which likely emulates DES in that case); if it allows 256 bit keys, I have no idea what it would do with them. Also, in case you're wondering whether DES keys are 56 bits or 64 bits, well, they are considered 56 bits of cryptographical strength (because we can run through all possible DES encryption operations by trying $2^{56}$ different values), however when we represent a key, we typically express it as 8 bytes (or 64 bits); we essentially ignore the lsbit of each byte (originally, they were "parity bits" for each byte, however since no one manually enters DES keys anymore, we end up ignoring them instead). That's the way the DES designers did things; most everyone follows tradition.