blob: 51c6b0b30fb69845a696bd26ca8d51eebf6e8a85 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.security.codelabsmartdoor;
const uint8 MAX_NAME_SIZE = 8;
const uint8 MAX_PASSPHRASE_SIZE = 32;
enum Error {
INTERNAL = 1;
USER_EXISTS = 2;
INVALID_INPUT = 3;
WRONG_PASSPHRASE = 4;
};
enum UserGroup {
REGULAR = 1;
ADMIN = 2;
};
[Discoverable]
protocol Access {
// Add a home member with the given name and set the passphrase for the
// member. The new member would be in the regular user group.
AddHomeMember(string:MAX_NAME_SIZE name,
bytes:MAX_PASSPHRASE_SIZE passphrase) -> () error Error;
// Open the door with the given name and the given passphrase.
Open(string:MAX_NAME_SIZE name, bytes:MAX_PASSPHRASE_SIZE passphrase)
-> (UserGroup group) error Error;
// Close the door, which does nothing haha :).
Close();
// Enable debug information.
SetDebugFlag(bool enable) -> ();
};
[Discoverable]
protocol AccessReset {
// Reset the smart door to its initial state.
Reset() -> ();
};