1<?php 2/* 3 * Copyright 2008-2010 GuardTime AS 4 * 5 * This file is part of the GuardTime PHP SDK. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20/** 21 * @package asn1 22 */ 23 24/** 25 * ASN.1 Null implementation. 26 * 27 * @package asn1 28 */ 29class ASN1Null extends ASN1Object { 30 31 /** 32 * Constructs a new instance of ASN1Null. 33 * @return void 34 */ 35 public function __construct() { 36 } 37 38 /** 39 * Encodes ASN1Null as DER byte array. 40 * 41 * @return array DER encoding of this ASN1Null 42 */ 43 public function encodeDER() { 44 45 $bytes = array(); 46 47 $this->append($bytes, ASN1DER::encodeType(ASN1_TAG_NULL)); 48 $this->append($bytes, 0x0); 49 50 return $bytes; 51 } 52 53 /** 54 * Decodes an ASN1Null object. 55 * 56 * For ASN1Null the byte stream must be empty (no V bytes, just TL) 57 * 58 * @throws GTException 59 * @param array $bytes null or empty array 60 * @return void 61 */ 62 public function decodeDER($bytes) { 63 64 if (!empty($bytes)) { 65 throw new GTException("ASN1Null TLV should not contain any V bytes"); 66 } 67 } 68} 69 70?> 71