BerSequenceObject.cpp
1 /** 2 * @file BerSequenceObject.cpp 3 * @author Rene Ceska xceska06 (xceska06@stud.fit.vutbr.cz) 4 * @date 2023-11-19 5 */ 6 #include "inc/BerSequenceObject.h" 7 8 berObjectTypes BerSequenceObject::getBerObjectType() { 9 return berSequenceObject; 10 } 11 12 long long int BerSequenceObject::getLenght() { 13 14 long long int dataLenght = 0; 15 16 for (long unsigned int i = 0; i < objects.size(); i++) { 17 dataLenght += objects[i]->getLenght(); 18 } 19 20 return BER_TAG_LENGTH + BER_LENGTH_OF_LENGTH_TAG + BER_4BYTE_LENGTH_LENGTH + 21 dataLenght; 22 } 23 24 std::vector<unsigned char> BerSequenceObject::getBerRepresentation() { 25 std::vector<unsigned char> berRepresentation; 26 long long int dataLenght = 0; 27 for (long unsigned int i = 0; i < objects.size(); i++) { 28 dataLenght += objects[i]->getLenght(); 29 } 30 31 berRepresentation.push_back(tag); 32 AppendLenght4Bytes(berRepresentation, dataLenght); 33 for (long unsigned int i = 0; i < objects.size(); i++) { 34 std::vector<unsigned char> objectRepresentation = 35 objects[i]->getBerRepresentation(); 36 berRepresentation.insert(berRepresentation.end(), 37 objectRepresentation.begin(), 38 objectRepresentation.end()); 39 } 40 41 return berRepresentation; 42 } 43 44 BerSequenceObject::BerSequenceObject() { tag = BER_SEQUENCE_C; } 45 46 int BerSequenceObject::GetTag() { return tag; } 47 48 BerSequenceObject::BerSequenceObject(int tag) { this->tag = tag; } 49 50 BerSequenceObject::~BerSequenceObject() { 51 for (long unsigned int i = 0; i < objects.size(); i++) { 52 delete objects[i]; 53 } 54 }