Home | History | Annotate | Download | only in parser
      1 // Copyright 2017 PDFium 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 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #include "xfa/fxfa/parser/cxfa_keyusage.h"
      8 
      9 #include "fxjs/xfa/cjx_keyusage.h"
     10 #include "third_party/base/ptr_util.h"
     11 
     12 namespace {
     13 
     14 const CXFA_Node::AttributeData kAttributeData[] = {
     15     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     16     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     17     {XFA_Attribute::NonRepudiation, XFA_AttributeType::CData, nullptr},
     18     {XFA_Attribute::EncipherOnly, XFA_AttributeType::CData, nullptr},
     19     {XFA_Attribute::Type, XFA_AttributeType::Enum,
     20      (void*)XFA_AttributeEnum::Optional},
     21     {XFA_Attribute::DigitalSignature, XFA_AttributeType::CData, nullptr},
     22     {XFA_Attribute::CrlSign, XFA_AttributeType::CData, nullptr},
     23     {XFA_Attribute::KeyAgreement, XFA_AttributeType::CData, nullptr},
     24     {XFA_Attribute::KeyEncipherment, XFA_AttributeType::CData, nullptr},
     25     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     26     {XFA_Attribute::DataEncipherment, XFA_AttributeType::CData, nullptr},
     27     {XFA_Attribute::KeyCertSign, XFA_AttributeType::CData, nullptr},
     28     {XFA_Attribute::DecipherOnly, XFA_AttributeType::CData, nullptr},
     29     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
     30 
     31 constexpr wchar_t kName[] = L"keyUsage";
     32 
     33 }  // namespace
     34 
     35 CXFA_KeyUsage::CXFA_KeyUsage(CXFA_Document* doc, XFA_PacketType packet)
     36     : CXFA_Node(doc,
     37                 packet,
     38                 (XFA_XDPPACKET_Template | XFA_XDPPACKET_Form),
     39                 XFA_ObjectType::Node,
     40                 XFA_Element::KeyUsage,
     41                 nullptr,
     42                 kAttributeData,
     43                 kName,
     44                 pdfium::MakeUnique<CJX_KeyUsage>(this)) {}
     45 
     46 CXFA_KeyUsage::~CXFA_KeyUsage() {}
     47