blob: 4e2c3a1162b0fa325402b942c333b52579b16885 [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 MAX_NAME_SIZE uint8 = 8;
const MAX_PASSPHRASE_SIZE uint8 = 32;
type Error = strict enum {
INTERNAL = 1;
USER_EXISTS = 2;
INVALID_INPUT = 3;
WRONG_PASSPHRASE = 4;
};
type UserGroup = strict enum {
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(struct {
name string:MAX_NAME_SIZE;
passphrase bytes:MAX_PASSPHRASE_SIZE;
}) -> (struct {}) error Error;
// Open the door with the given name and the given passphrase.
Open(struct {
name string:MAX_NAME_SIZE;
passphrase bytes:MAX_PASSPHRASE_SIZE;
}) -> (struct {
group UserGroup;
}) error Error;
// Close the door, which does nothing haha :).
Close();
// Enable debug information.
SetDebugFlag(struct {
enable bool;
}) -> ();
};
@discoverable
protocol AccessReset {
// Reset the smart door to its initial state.
Reset() -> ();
};