Ejemplo n.º 1
0
        private bool TryGetOtpPartitionAndItem(uint readAddress, out OtpItem item, out OtpPartition partition, out int itemOffset, out int partitionOffset)
        {
            itemOffset      = 0;
            partitionOffset = 0;
            item            = default(OtpItem);
            partition       = default(OtpPartition);

            return(Misc.TryFindPreceedingEnumItem(readAddress, out item, out itemOffset) &&
                   Misc.TryFindPreceedingEnumItem(readAddress, out partition, out partitionOffset));
        }
Ejemplo n.º 2
0
        private void RaisePartitionError(Error error, OtpPartition partition)
        {
            switch (partition)
            {
            case OtpPartition.VendorTest:
                vendorPartitionError.Value     = error;
                vendorPartitionErrorFlag.Value = true;
                break;

            case OtpPartition.OwnerSoftwareConfig:
                ownerPartitionError.Value     = error;
                ownerPartitionErrorFlag.Value = true;
                break;

            case OtpPartition.CreatorSoftwareConfig:
                creatorPartitionError.Value     = error;
                creatorPartitionErrorFlag.Value = true;
                break;

            case OtpPartition.HardwareConfig:
                hardwarePartitionError.Value     = error;
                hardwarePartitionErrorFlag.Value = true;
                break;

            case OtpPartition.Secret0:
                secret0PartitionError.Value     = error;
                secret0PartitionErrorFlag.Value = true;
                break;

            case OtpPartition.Secret1:
                secret1PartitionError.Value     = error;
                secret1PartitionErrorFlag.Value = true;
                break;

            case OtpPartition.Secret2:
                secret2PartitionError.Value     = error;
                secret2PartitionErrorFlag.Value = true;
                break;

            case OtpPartition.LifeCycle:
                lifeCyclePartitionError.Value     = error;
                lifeCyclePartitionErrorFlag.Value = true;
                break;

            default:
                throw new ArgumentException($"Unknown partition {partition}");
            }
        }
Ejemplo n.º 3
0
        private bool IsPartitionReadable(OtpPartition partition)
        {
            switch (partition)
            {
            case OtpPartition.VendorTest:
                return(vendorPartitionUnlockedFlag.Value);

            case OtpPartition.CreatorSoftwareConfig:
                return(creatorPartitionUnlockedFlag.Value);

            case OtpPartition.OwnerSoftwareConfig:
                return(ownerPartitionUnlockedFlag.Value);

            default:
                return(true);
            }
        }