wbokslag has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-tetra/+/41684?usp=email )


Change subject: Added functional TA61 decryption
......................................................................

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 https://gerrit.osmocom.org/c/osmo-tetra/+/41684?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-tetra
Gerrit-Branch: master
Gerrit-Change-Id: Ic01c1d9cd151ba0213ed67971cc479f312af14fb
Gerrit-Change-Number: 41684
Gerrit-PatchSet: 1
Gerrit-Owner: wbokslag <[email protected]>

Reply via email to