No changes

Fork of nRF51822 by Nordic Semiconductor

Committer:
vcoubard
Date:
Mon Jan 11 10:19:21 2016 +0000
Revision:
570:f162898cb6c4
Parent:
566:e425ad9e5d6e
Child:
571:bbf6410b6a89
Synchronized with git rev 786cd0b9
Author: Andres Amaya Garcia
Modify nRF5xn::shutdown to return actual error code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vcoubard 558:c4b56f9d6f3b 1 /* mbed Microcontroller Library
vcoubard 558:c4b56f9d6f3b 2 * Copyright (c) 2006-2013 ARM Limited
vcoubard 558:c4b56f9d6f3b 3 *
vcoubard 558:c4b56f9d6f3b 4 * Licensed under the Apache License, Version 2.0 (the "License");
vcoubard 558:c4b56f9d6f3b 5 * you may not use this file except in compliance with the License.
vcoubard 558:c4b56f9d6f3b 6 * You may obtain a copy of the License at
vcoubard 558:c4b56f9d6f3b 7 *
vcoubard 558:c4b56f9d6f3b 8 * http://www.apache.org/licenses/LICENSE-2.0
vcoubard 558:c4b56f9d6f3b 9 *
vcoubard 558:c4b56f9d6f3b 10 * Unless required by applicable law or agreed to in writing, software
vcoubard 558:c4b56f9d6f3b 11 * distributed under the License is distributed on an "AS IS" BASIS,
vcoubard 558:c4b56f9d6f3b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
vcoubard 558:c4b56f9d6f3b 13 * See the License for the specific language governing permissions and
vcoubard 558:c4b56f9d6f3b 14 * limitations under the License.
vcoubard 558:c4b56f9d6f3b 15 */
vcoubard 558:c4b56f9d6f3b 16
vcoubard 558:c4b56f9d6f3b 17 #ifndef __NRF51822_SECURITY_MANAGER_H__
vcoubard 558:c4b56f9d6f3b 18 #define __NRF51822_SECURITY_MANAGER_H__
vcoubard 558:c4b56f9d6f3b 19
vcoubard 558:c4b56f9d6f3b 20 #include <stddef.h>
vcoubard 558:c4b56f9d6f3b 21
vcoubard 558:c4b56f9d6f3b 22 #include "ble/SecurityManager.h"
vcoubard 558:c4b56f9d6f3b 23 #include "btle_security.h"
vcoubard 558:c4b56f9d6f3b 24
vcoubard 558:c4b56f9d6f3b 25 class nRF5xSecurityManager : public SecurityManager
vcoubard 558:c4b56f9d6f3b 26 {
vcoubard 558:c4b56f9d6f3b 27 public:
vcoubard 558:c4b56f9d6f3b 28 /* Functions that must be implemented from SecurityManager */
vcoubard 558:c4b56f9d6f3b 29 virtual ble_error_t init(bool enableBonding,
vcoubard 558:c4b56f9d6f3b 30 bool requireMITM,
vcoubard 558:c4b56f9d6f3b 31 SecurityIOCapabilities_t iocaps,
vcoubard 558:c4b56f9d6f3b 32 const Passkey_t passkey) {
vcoubard 558:c4b56f9d6f3b 33 return btle_initializeSecurity(enableBonding, requireMITM, iocaps, passkey);
vcoubard 558:c4b56f9d6f3b 34 }
vcoubard 558:c4b56f9d6f3b 35
vcoubard 558:c4b56f9d6f3b 36 virtual ble_error_t getLinkSecurity(Gap::Handle_t connectionHandle, LinkSecurityStatus_t *securityStatusP) {
vcoubard 558:c4b56f9d6f3b 37 return btle_getLinkSecurity(connectionHandle, securityStatusP);
vcoubard 558:c4b56f9d6f3b 38 }
vcoubard 558:c4b56f9d6f3b 39
vcoubard 558:c4b56f9d6f3b 40 virtual ble_error_t setLinkSecurity(Gap::Handle_t connectionHandle, SecurityMode_t securityMode) {
vcoubard 558:c4b56f9d6f3b 41 return btle_setLinkSecurity(connectionHandle, securityMode);
vcoubard 558:c4b56f9d6f3b 42 }
vcoubard 558:c4b56f9d6f3b 43
vcoubard 558:c4b56f9d6f3b 44 virtual ble_error_t purgeAllBondingState(void) {
vcoubard 558:c4b56f9d6f3b 45 return btle_purgeAllBondingState();
vcoubard 558:c4b56f9d6f3b 46 }
vcoubard 558:c4b56f9d6f3b 47
vcoubard 570:f162898cb6c4 48 /**
vcoubard 570:f162898cb6c4 49 * @brief Clear nRF5xSecurityManager's state.
vcoubard 570:f162898cb6c4 50 *
vcoubard 570:f162898cb6c4 51 * @return
vcoubard 570:f162898cb6c4 52 * BLE_ERROR_NONE if successful.
vcoubard 570:f162898cb6c4 53 */
vcoubard 570:f162898cb6c4 54 virtual ble_error_t reset(void)
vcoubard 570:f162898cb6c4 55 {
vcoubard 570:f162898cb6c4 56 if (SecurityManager::reset() != BLE_ERROR_NONE) {
vcoubard 570:f162898cb6c4 57 return BLE_ERROR_INVALID_STATE;
vcoubard 570:f162898cb6c4 58 }
vcoubard 570:f162898cb6c4 59
vcoubard 570:f162898cb6c4 60 return BLE_ERROR_NONE;
vcoubard 570:f162898cb6c4 61 }
vcoubard 570:f162898cb6c4 62
vcoubard 558:c4b56f9d6f3b 63 public:
vcoubard 570:f162898cb6c4 64 /*
vcoubard 570:f162898cb6c4 65 * Allow instantiation from nRF5xn when required.
vcoubard 570:f162898cb6c4 66 */
vcoubard 570:f162898cb6c4 67 friend class nRF5xn;
vcoubard 570:f162898cb6c4 68
vcoubard 558:c4b56f9d6f3b 69 nRF5xSecurityManager() {
vcoubard 558:c4b56f9d6f3b 70 /* empty */
vcoubard 558:c4b56f9d6f3b 71 }
vcoubard 558:c4b56f9d6f3b 72
vcoubard 558:c4b56f9d6f3b 73 private:
vcoubard 558:c4b56f9d6f3b 74 nRF5xSecurityManager(const nRF5xSecurityManager &);
vcoubard 558:c4b56f9d6f3b 75 const nRF5xSecurityManager& operator=(const nRF5xSecurityManager &);
vcoubard 558:c4b56f9d6f3b 76 };
vcoubard 558:c4b56f9d6f3b 77
rgrover1 388:db85a09c27ef 78 #endif // ifndef __NRF51822_SECURITY_MANAGER_H__