1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef NET_QUIC_CRYPTO_SCOPED_EVP_AEAD_CTX_H_
6#define NET_QUIC_CRYPTO_SCOPED_EVP_AEAD_CTX_H_
7
8#include <openssl/evp.h>
9
10#include "base/basictypes.h"
11
12namespace net {
13
14// ScopedEVPAEADCtx manages an EVP_AEAD_CTX object and calls the needed cleanup
15// functions when it goes out of scope.
16class ScopedEVPAEADCtx {
17 public:
18  ScopedEVPAEADCtx();
19  ~ScopedEVPAEADCtx();
20
21  EVP_AEAD_CTX* get();
22
23 private:
24  EVP_AEAD_CTX ctx_;
25
26  DISALLOW_COPY_AND_ASSIGN(ScopedEVPAEADCtx);
27};
28
29}  // namespace net
30
31#endif  // NET_QUIC_CRYPTO_SCOPED_EVP_AEAD_CTX_H_
32