sources.cc 884 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <string>
  2. #include <iostream>
  3. // for memcpy
  4. #include <cstring>
  5. #include <apt-pkg/error.h>
  6. #include <apt-pkg/gpgv.h>
  7. #include "sources.h"
  8. bool DscExtract::TakeDsc(const void *newData, unsigned long newSize)
  9. {
  10. if(newSize > maxSize)
  11. return _error->Error("DSC data is too large %lu!", newSize);
  12. if (newSize == 0)
  13. {
  14. Length = 0;
  15. return true;
  16. }
  17. memcpy(Data, newData, newSize);
  18. Length = newSize;
  19. return true;
  20. }
  21. bool DscExtract::Read(std::string FileName)
  22. {
  23. FileFd F;
  24. if (OpenMaybeClearSignedFile(FileName, F) == false)
  25. return false;
  26. unsigned long long const FSize = F.FileSize();
  27. if(FSize > maxSize)
  28. return _error->Error("DSC file '%s' is too large!",FileName.c_str());
  29. if (F.Read(Data, FSize) == false)
  30. return false;
  31. Length = FSize;
  32. IsClearSigned = (FileName != F.Name());
  33. return true;
  34. }