library for BLE_GAP_backpack

Dependencies:   nrf51-sdk

Fork of nRF51822 by Nordic Semiconductor

Committer:
vcoubard
Date:
Mon Jan 11 10:19:13 2016 +0000
Revision:
558:c4b56f9d6f3b
Parent:
388:db85a09c27ef
Child:
561:613dbbdeed27
Synchronized with git rev b2cb5663
Author: Marcus Chang
Added SecurityManager::setLinkSecurity call for elevating security settings on a particular connection.

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 static nRF5xSecurityManager &getInstance();
vcoubard 558:c4b56f9d6f3b 29
vcoubard 558:c4b56f9d6f3b 30 /* Functions that must be implemented from SecurityManager */
vcoubard 558:c4b56f9d6f3b 31 virtual ble_error_t init(bool enableBonding,
vcoubard 558:c4b56f9d6f3b 32 bool requireMITM,
vcoubard 558:c4b56f9d6f3b 33 SecurityIOCapabilities_t iocaps,
vcoubard 558:c4b56f9d6f3b 34 const Passkey_t passkey) {
vcoubard 558:c4b56f9d6f3b 35 return btle_initializeSecurity(enableBonding, requireMITM, iocaps, passkey);
vcoubard 558:c4b56f9d6f3b 36 }
vcoubard 558:c4b56f9d6f3b 37
vcoubard 558:c4b56f9d6f3b 38 virtual ble_error_t getLinkSecurity(Gap::Handle_t connectionHandle, LinkSecurityStatus_t *securityStatusP) {
vcoubard 558:c4b56f9d6f3b 39 return btle_getLinkSecurity(connectionHandle, securityStatusP);
vcoubard 558:c4b56f9d6f3b 40 }
vcoubard 558:c4b56f9d6f3b 41
vcoubard 558:c4b56f9d6f3b 42 virtual ble_error_t setLinkSecurity(Gap::Handle_t connectionHandle, SecurityMode_t securityMode) {
vcoubard 558:c4b56f9d6f3b 43 return btle_setLinkSecurity(connectionHandle, securityMode);
vcoubard 558:c4b56f9d6f3b 44 }
vcoubard 558:c4b56f9d6f3b 45
vcoubard 558:c4b56f9d6f3b 46 virtual ble_error_t purgeAllBondingState(void) {
vcoubard 558:c4b56f9d6f3b 47 return btle_purgeAllBondingState();
vcoubard 558:c4b56f9d6f3b 48 }
vcoubard 558:c4b56f9d6f3b 49
vcoubard 558:c4b56f9d6f3b 50 public:
vcoubard 558:c4b56f9d6f3b 51 nRF5xSecurityManager() {
vcoubard 558:c4b56f9d6f3b 52 /* empty */
vcoubard 558:c4b56f9d6f3b 53 }
vcoubard 558:c4b56f9d6f3b 54
vcoubard 558:c4b56f9d6f3b 55 private:
vcoubard 558:c4b56f9d6f3b 56 nRF5xSecurityManager(const nRF5xSecurityManager &);
vcoubard 558:c4b56f9d6f3b 57 const nRF5xSecurityManager& operator=(const nRF5xSecurityManager &);
vcoubard 558:c4b56f9d6f3b 58 };
vcoubard 558:c4b56f9d6f3b 59
rgrover1 388:db85a09c27ef 60 #endif // ifndef __NRF51822_SECURITY_MANAGER_H__