wbokslag has uploaded this change for review.

View Change

Added functional TA61 decryption

Now uses a known SCK/CCK to decrypt identities using TA61

Change-Id: Ic01c1d9cd151ba0213ed67971cc479f312af14fb
---
M src/crypto/tetra_crypto.c
1 file changed, 9 insertions(+), 2 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-tetra refs/changes/84/41684/1
diff --git a/src/crypto/tetra_crypto.c b/src/crypto/tetra_crypto.c
index 3230cb8..7344dd0 100644
--- a/src/crypto/tetra_crypto.c
+++ b/src/crypto/tetra_crypto.c
@@ -204,8 +204,15 @@

bool decrypt_identity(struct tetra_crypto_state *tcs, struct tetra_addr *addr)
{
- /* TODO FIXME implement TA61 decryption */
- return false;
+ if (!tcs->cck)
+ return false;
+
+ uint8_t a_addr[3] = {addr->ssi >> 16, addr->ssi >> 8, addr->ssi};
+ ta61_inv(tcs->cck->key, a_addr, a_addr);
+
+ uint32_t addr_decrypted = (a_addr[0] << 16) | (a_addr[1] << 8) | a_addr[2];
+ addr->ssi = addr_decrypted;
+ return true;
}

bool decrypt_mac_element(struct tetra_crypto_state *tcs, struct tetra_tmvsap_prim *tmvp, struct tetra_key *key, int l1_len, int tmpdu_offset)

To view, visit change 41684. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-tetra
Gerrit-Branch: master
Gerrit-Change-Id: Ic01c1d9cd151ba0213ed67971cc479f312af14fb
Gerrit-Change-Number: 41684
Gerrit-PatchSet: 1
Gerrit-Owner: wbokslag <w.bokslag@midnightblue.nl>