geom_gate userland utility improvements
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

96 lines
2.7 KiB

  1. /* Copyright (C) 2007 The Written Word, Inc.
  2. * Copyright (C) 2008, 2010 Simon Josefsson
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms,
  6. * with or without modification, are permitted provided
  7. * that the following conditions are met:
  8. *
  9. * Redistributions of source code must retain the above
  10. * copyright notice, this list of conditions and the
  11. * following disclaimer.
  12. *
  13. * Redistributions in binary form must reproduce the above
  14. * copyright notice, this list of conditions and the following
  15. * disclaimer in the documentation and/or other materials
  16. * provided with the distribution.
  17. *
  18. * Neither the name of the copyright holder nor the names
  19. * of any other contributors may be used to endorse or
  20. * promote products derived from this software without
  21. * specific prior written permission.
  22. *
  23. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  24. * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  25. * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  26. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  27. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  28. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  29. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  30. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  31. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  32. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  33. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  34. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  35. * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  36. * OF SUCH DAMAGE.
  37. */
  38. #include <stdio.h>
  39. #include <stdlib.h>
  40. #include "libssh2.h"
  41. static int test_libssh2_base64_decode(LIBSSH2_SESSION *session)
  42. {
  43. char *data;
  44. unsigned int datalen;
  45. const char *src = "Zm5vcmQ=";
  46. unsigned int src_len = strlen(src);
  47. int ret;
  48. ret = libssh2_base64_decode(session, &data, &datalen,
  49. src, src_len);
  50. if(ret)
  51. return ret;
  52. if(datalen != 5 || strcmp(data, "fnord") != 0) {
  53. fprintf(stderr,
  54. "libssh2_base64_decode() failed (%d, %.*s)\n",
  55. datalen, datalen, data);
  56. return 1;
  57. }
  58. free(data);
  59. return 0;
  60. }
  61. int main(int argc, char *argv[])
  62. {
  63. LIBSSH2_SESSION *session;
  64. int rc;
  65. (void)argv;
  66. (void)argc;
  67. rc = libssh2_init(LIBSSH2_INIT_NO_CRYPTO);
  68. if(rc != 0) {
  69. fprintf(stderr, "libssh2_init() failed: %d\n", rc);
  70. return 1;
  71. }
  72. session = libssh2_session_init();
  73. if(!session) {
  74. fprintf(stderr, "libssh2_session_init() failed\n");
  75. return 1;
  76. }
  77. test_libssh2_base64_decode(session);
  78. libssh2_session_free(session);
  79. libssh2_exit();
  80. return 0;
  81. }