Exemple #1
0
        DESFireKey IDESFireSAM.FindKeyById(short id)
        {
            foreach (PACSAMKey key in myKeys)
            {
                if (key.Id == id)
                {
                    DESFireKey result = new DESFireKey();
                    result.Id = key.Id;

                    if (key.KeyType == PACSAMKeyType.AES)
                    {
                        result.KeyType = DESFireKeyType.AES;
                    }
                    else if (key.KeyType == PACSAMKeyType.DES)
                    {
                        result.KeyType = DESFireKeyType.TDEA2KEY;
                    }
                    else
                    {
                        throw new InvalidOperationException();
                    }

                    result.Version  = key.Version;
                    result.Name     = key.Name;
                    result.SamIndex = key.Index;

                    return(result);
                }
            }

            return(null);
        }
Exemple #2
0
 byte[] IDESFireSAM.ChangeKey(byte keyNo, short newId, short?oldId)
 {
     if (oldId == null)
     {
         DESFireKey newKey = (this as IDESFireSAM).FindKeyById(newId);
         return(EV1ChangeKey(keyNo, newKey.SamIndex, null));
     }
     else
     {
         DESFireKey newKey = (this as IDESFireSAM).FindKeyById(newId);
         DESFireKey oldKey = (this as IDESFireSAM).FindKeyById(oldId.Value);
         return(EV1ChangeKey(keyNo, newKey.SamIndex, oldKey.SamIndex));
     }
 }
Exemple #3
0
        byte[] IDESFireSAM.Authenticate0(short keyId, byte[] ekRndB)
        {
            DESFireKey key = (this as IDESFireSAM).FindKeyById(keyId);

            return(EV1Authenticate0(key.SamIndex, ekRndB));
        }