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 android.os.Parcelable; 2145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 2245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker/** 2345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * Class for handling parceling the return values from keymaster's export operation. 2445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker * @hide 2545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker */ 2645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerpublic class ExportResult implements Parcelable { 2745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public final int resultCode; 2845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public final byte[] exportData; 2945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 3045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public static final Parcelable.Creator<ExportResult> CREATOR = new 3145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker Parcelable.Creator<ExportResult>() { 3245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public ExportResult createFromParcel(Parcel in) { 3345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker return new ExportResult(in); 3445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 3545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 3645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public ExportResult[] newArray(int length) { 3745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker return new ExportResult[length]; 3845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 3945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker }; 4045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 4145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker protected ExportResult(Parcel in) { 4245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker resultCode = in.readInt(); 4345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker exportData = in.createByteArray(); 4445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 4545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 4645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker @Override 4745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public int describeContents() { 4845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker return 0; 4945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 5045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 5145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker @Override 5245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker public void writeToParcel(Parcel out, int flags) { 5345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker out.writeInt(resultCode); 5445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker out.writeByteArray(exportData); 5545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker } 5645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker}; 57