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 Brubakerimport java.util.Date; 2145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 2245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker/** 2345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * @hide 2445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker */ 2545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerclass KeymasterDateArgument extends KeymasterArgument { 2645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public final Date date; 2745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 2845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public KeymasterDateArgument(int tag, Date date) { 2945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker super(tag); 30534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker switch (KeymasterDefs.getTagType(tag)) { 31534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker case KeymasterDefs.KM_DATE: 32534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker break; // OK. 33534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker default: 34534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker throw new IllegalArgumentException("Bad date tag " + tag); 35534bf9c2683e4e4a37d4348cb7d0945b2116fd53Chad Brubaker } 3645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker this.date = date; 3745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 3845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 3945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public KeymasterDateArgument(int tag, Parcel in) { 4045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker super(tag); 4145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker date = new Date(in.readLong()); 4245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 4345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 4445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker @Override 4545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public void writeValue(Parcel out) { 4645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker out.writeLong(date.getTime()); 4745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 4845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker} 49