1d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence/*
2d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * Copyright (C) 2015 The Android Open Source Project
3d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence *
4d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * Licensed under the Apache License, Version 2.0 (the "License");
5d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * you may not use this file except in compliance with the License.
6d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * You may obtain a copy of the License at
7d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence *
8d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence *      http://www.apache.org/licenses/LICENSE-2.0
9d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence *
10d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * Unless required by applicable law or agreed to in writing, software
11d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * distributed under the License is distributed on an "AS IS" BASIS,
12d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * See the License for the specific language governing permissions and
14d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence * limitations under the License.
15d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence */
16d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
17d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#ifndef _CRYPTCOMMANDLISTENER_H__
18d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#define _CRYPTCOMMANDLISTENER_H__
19d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
20d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#include <sysutils/FrameworkListener.h>
21d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#include <utils/Errors.h>
22d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#include "VoldCommand.h"
23d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
24d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrenceclass CryptCommandListener : public FrameworkListener {
25d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrencepublic:
26d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    CryptCommandListener();
27d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    virtual ~CryptCommandListener() {}
28d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
29d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrenceprivate:
30d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    static void dumpArgs(int argc, char **argv, int argObscure);
3176107cb3f4845b1a51a1a291c70ea3e12f9c14d0Paul Crowley    static int sendGenericOkFailOnBool(SocketClient *cli, bool success);
32d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
33d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    class CryptfsCmd : public VoldCommand {
34d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    public:
35d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence        CryptfsCmd();
36d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence        virtual ~CryptfsCmd() {}
37d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence        int runCommand(SocketClient *c, int argc, char ** argv);
38d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    };
39d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence    int getSocket();
40d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence};
41d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence
42d0b4295ccc07d0cd715ade415c8c0d7d6945880ePaul Lawrence#endif
43