18effa36ca6440604cf10bbc34fba2b60ff304f54Alex Klyubin/* 28effa36ca6440604cf10bbc34fba2b60ff304f54Alex Klyubin * Copyright (C) 2015 The Android Open Source Project 345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * 445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * Licensed under the Apache License, Version 2.0 (the "License"); 545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * you may not use this file except in compliance with the License. 645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * You may obtain a copy of the License at 745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * 88effa36ca6440604cf10bbc34fba2b60ff304f54Alex Klyubin * http://www.apache.org/licenses/LICENSE-2.0 945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * 1045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * Unless required by applicable law or agreed to in writing, software 1145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * distributed under the License is distributed on an "AS IS" BASIS, 1245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * See the License for the specific language governing permissions and 1445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * limitations under the License. 1545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker */ 1645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 1745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerpackage android.security.keymaster; 1845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 1945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerimport android.os.Parcel; 2045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 2145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker/** 2245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * @hide 2345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker */ 2445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerclass KeymasterIntArgument extends KeymasterArgument { 2545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public final int value; 2645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 2745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public KeymasterIntArgument(int tag, int value) { 2845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker super(tag); 29534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker switch (KeymasterDefs.getTagType(tag)) { 303e7a9e4ec611a1306f8aa5e593c95237030bb5baAlex Klyubin case KeymasterDefs.KM_UINT: 313e7a9e4ec611a1306f8aa5e593c95237030bb5baAlex Klyubin case KeymasterDefs.KM_UINT_REP: 32534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker case KeymasterDefs.KM_ENUM: 33534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker case KeymasterDefs.KM_ENUM_REP: 34534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker break; // OK. 35534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker default: 36534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker throw new IllegalArgumentException("Bad int tag " + tag); 37534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker } 3845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker this.value = value; 3945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 4045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 4145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public KeymasterIntArgument(int tag, Parcel in) { 4245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker super(tag); 4345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker value = in.readInt(); 4445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 4545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 4645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker @Override 4745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public void writeValue(Parcel out) { 4845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker out.writeInt(value); 4945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 5045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker} 51