scoped_test_nss_db.h revision 24854748fba09df2a29f0d08d558c3acea70e7a1
165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Copyright 2014 The Chromium Authors. All rights reserved.
265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Use of this source code is governed by a BSD-style license that can be
365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// found in the LICENSE file.
465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#ifndef CRYPTO_SCOPED_TEST_NSS_DB_H_
665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#define CRYPTO_SCOPED_TEST_NSS_DB_H_
765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "base/files/scoped_temp_dir.h"
965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "base/macros.h"
1065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "crypto/crypto_export.h"
1165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#include "crypto/scoped_nss_types.h"
1265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
1365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboenamespace crypto {
1465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
1565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Opens a persistent NSS database in a temporary directory.
1665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// Prior NSS version 3.15.1, because of http://bugzil.la/875601 , the opened DB
1765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe// will not be closed automatically.
1865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboeclass CRYPTO_EXPORT ScopedTestNSSDB {
1965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe public:
2065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  ScopedTestNSSDB();
2165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  ~ScopedTestNSSDB();
2265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
2365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  bool is_open() const { return slot_; }
2465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  PK11SlotInfo* slot() const { return slot_.get(); }
2565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
2665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe private:
2765f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  base::ScopedTempDir temp_dir_;
2865f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  ScopedPK11Slot slot_;
2965f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
3065f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe  DISALLOW_COPY_AND_ASSIGN(ScopedTestNSSDB);
3165f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe};
3265f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
3365f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe}  // namespace crypto
3465f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe
3565f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe#endif  // CRYPTO_SCOPED_TEST_NSS_DB_H_
3665f21d61d5d0796335ceb3320b8846e4d6d30ac7Jens Axboe