| Index: components/crx_file/crx_file.h
|
| diff --git a/components/crx_file/crx_file.h b/components/crx_file/crx_file.h
|
| deleted file mode 100644
|
| index cf9bce8a81c2aa45a957e7a9826d746a0ac496d4..0000000000000000000000000000000000000000
|
| --- a/components/crx_file/crx_file.h
|
| +++ /dev/null
|
| @@ -1,118 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef COMPONENTS_CRX_FILE_CRX_FILE_H_
|
| -#define COMPONENTS_CRX_FILE_CRX_FILE_H_
|
| -
|
| -#include <stddef.h>
|
| -#include <stdint.h>
|
| -#include <sys/types.h>
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -namespace base {
|
| -class FilePath;
|
| -}
|
| -
|
| -namespace crx_file {
|
| -
|
| -// CRX files have a header that includes a magic key, version number, and
|
| -// some signature sizing information. Use CrxFile object to validate whether
|
| -// the header is valid or not.
|
| -class CrxFile {
|
| - public:
|
| - // The size of the magic character sequence at the beginning of each crx
|
| - // file, in bytes. This should be a multiple of 4.
|
| - static const size_t kCrxFileHeaderMagicSize = 4;
|
| -
|
| - // This header is the first data at the beginning of an extension. Its
|
| - // contents are purposely 32-bit aligned so that it can just be slurped into
|
| - // a struct without manual parsing.
|
| - struct Header {
|
| - char magic[kCrxFileHeaderMagicSize];
|
| - uint32_t version;
|
| - uint32_t key_size; // The size of the public key, in bytes.
|
| - uint32_t signature_size; // The size of the signature, in bytes.
|
| - // An ASN.1-encoded PublicKeyInfo structure follows.
|
| - // The signature follows.
|
| - };
|
| -
|
| - enum Error {
|
| - kWrongMagic,
|
| - kInvalidVersion,
|
| - kInvalidKeyTooLarge,
|
| - kInvalidKeyTooSmall,
|
| - kInvalidSignatureTooLarge,
|
| - kInvalidSignatureTooSmall,
|
| - };
|
| -
|
| - // Construct a new CRX file header object with bytes of a header
|
| - // read from a CRX file. If a null scoped_ptr is returned, |error|
|
| - // contains an error code with additional information.
|
| - static std::unique_ptr<CrxFile> Parse(const Header& header, Error* error);
|
| -
|
| - // Construct a new header for the given key and signature sizes.
|
| - // Returns a null scoped_ptr if erroneous values of |key_size| and/or
|
| - // |signature_size| are provided. |error| contains an error code with
|
| - // additional information.
|
| - // Use this constructor and then .header() to obtain the Header
|
| - // for writing out to a CRX file.
|
| - static std::unique_ptr<CrxFile> Create(const uint32_t key_size,
|
| - const uint32_t signature_size,
|
| - Error* error);
|
| -
|
| - // Returns the header structure for writing out to a CRX file.
|
| - const Header& header() const { return header_; }
|
| -
|
| - // Checks a valid |header| to determine whether or not the CRX represents a
|
| - // differential CRX.
|
| - static bool HeaderIsDelta(const Header& header);
|
| -
|
| - enum class ValidateError {
|
| - NONE,
|
| - CRX_FILE_NOT_READABLE,
|
| - CRX_HEADER_INVALID,
|
| - CRX_MAGIC_NUMBER_INVALID,
|
| - CRX_VERSION_NUMBER_INVALID,
|
| - CRX_EXCESSIVELY_LARGE_KEY_OR_SIGNATURE,
|
| - CRX_ZERO_KEY_LENGTH,
|
| - CRX_ZERO_SIGNATURE_LENGTH,
|
| - CRX_PUBLIC_KEY_INVALID,
|
| - CRX_SIGNATURE_INVALID,
|
| - CRX_SIGNATURE_VERIFICATION_INITIALIZATION_FAILED,
|
| - CRX_SIGNATURE_VERIFICATION_FAILED,
|
| - CRX_HASH_VERIFICATION_FAILED,
|
| - };
|
| -
|
| - // Validates that the .crx file at |crx_path| is properly signed. If
|
| - // |expected_hash| is non-empty, it should specify a hex-encoded SHA256 hash
|
| - // for the entire .crx file which will be checked as we read it, and any
|
| - // mismatch will cause a CRX_HASH_VERIFICATION_FAILED result. The
|
| - // |public_key| argument can be provided to receive a copy of the
|
| - // base64-encoded public key pem bytes extracted from the .crx. The
|
| - // |extension_id| argument can be provided to receive the extension id (which
|
| - // is computed as a hash of the public key provided in the .crx). The
|
| - // |header| argument can be provided to receive a copy of the crx header.
|
| - static ValidateError ValidateSignature(const base::FilePath& crx_path,
|
| - const std::string& expected_hash,
|
| - std::string* public_key,
|
| - std::string* extension_id,
|
| - CrxFile::Header* header);
|
| -
|
| - private:
|
| - Header header_;
|
| -
|
| - // Constructor is private. Clients should use static factory methods above.
|
| - explicit CrxFile(const Header& header);
|
| -
|
| - // Checks the |header| for validity and returns true if the values are valid.
|
| - // If false is returned, more detailed error code is returned in |error|.
|
| - static bool HeaderIsValid(const Header& header, Error* error);
|
| -};
|
| -
|
| -} // namespace crx_file
|
| -
|
| -#endif // COMPONENTS_CRX_FILE_CRX_FILE_H_
|
|
|