• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (C) 2017 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 package com.android.verifiedboot.storage;
18 
19 public interface BackupInterface {
20     /**
21      * Returns true on a successful reimport of data.
22      *
23      * @param inBytes array to read from
24      * @param inBytesOffset offset to begin copying from.
25      * @param inBytesLength length to copy from |inBytes|.
26      */
restore(byte[] inBytes, short inBytesOffset, short inBytesLength)27     boolean restore(byte[] inBytes, short inBytesOffset, short inBytesLength);
28 
29     /**
30      * Copies all internal state to the given array and returns the number of
31      * bytes written.  The maximum return size is 0xfffe.
32      *
33      * @param outBytes array to copy internal state to starting at |outBytesOffset|.
34      * @param outBytesOffset
35      * @return length written
36      */
backup(byte[] outBytes, short outBytesOffset)37     short backup(byte[] outBytes, short outBytesOffset);
38 
39    /**
40     * Returns the size needed for backup().
41     *
42     * @return size of a backup as a short.
43     */
backupSize()44    short backupSize();
45 }
46