1 // Copyright 2015 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "tag.h" 6 7 #include <openssl/base.h> 8 9 namespace bssl::der { 10 ContextSpecificConstructed(uint8_t tag_number)11Tag ContextSpecificConstructed(uint8_t tag_number) { 12 BSSL_CHECK(tag_number == (tag_number & kTagNumberMask)); 13 return (tag_number & kTagNumberMask) | kTagConstructed | kTagContextSpecific; 14 } 15 ContextSpecificPrimitive(uint8_t base)16Tag ContextSpecificPrimitive(uint8_t base) { 17 BSSL_CHECK(base == (base & kTagNumberMask)); 18 return (base & kTagNumberMask) | kTagPrimitive | kTagContextSpecific; 19 } 20 IsConstructed(Tag tag)21bool IsConstructed(Tag tag) { 22 return (tag & kTagConstructionMask) == kTagConstructed; 23 } 24 25 } // namespace bssl::der 26