From 0a70650b119b6f0b2738e9cb14cf2ff3d05a4860 Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 1 Mar 2022 14:13:36 +0000 Subject: [PATCH 1/9] fix whitespace --- src/zcl_oassh.clas.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zcl_oassh.clas.abap b/src/zcl_oassh.clas.abap index d58e844..daed84c 100644 --- a/src/zcl_oassh.clas.abap +++ b/src/zcl_oassh.clas.abap @@ -158,4 +158,4 @@ CLASS zcl_oassh IMPLEMENTATION. ENDDO. ENDMETHOD. -ENDCLASS. \ No newline at end of file +ENDCLASS. From e9e8fa101d2623885f673a3a5b0551f32de028c5 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 2 Mar 2022 11:45:42 +0100 Subject: [PATCH 2/9] update npm packages --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 343414c..0395153 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,15 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@abaplint/cli": "^2.85.32", + "@abaplint/cli": "^2.85.34", "@abaplint/runtime": "^1.8.11", "@abaplint/transpiler-cli": "^1.8.11" } }, "node_modules/@abaplint/cli": { - "version": "2.85.32", - "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.32.tgz", - "integrity": "sha512-GBtpn6JGNkwBH48g1ZhARW31ZQdn4hrohcYug16NZPUwfbkDOBCZEMDWOOnQO/wfmitlaRktUEID6W+lbkTgAQ==", + "version": "2.85.34", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.34.tgz", + "integrity": "sha512-GX70Cd7djjafeqnKWu1MDeRC07p35Ygqx+4e/dOK8ZuweATtHF+1RNX3xK8EjDLW+ywXJsj++z3gxEKlLuoCqw==", "bin": { "abaplint": "abaplint" }, @@ -77,9 +77,9 @@ }, "dependencies": { "@abaplint/cli": { - "version": "2.85.32", - "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.32.tgz", - "integrity": "sha512-GBtpn6JGNkwBH48g1ZhARW31ZQdn4hrohcYug16NZPUwfbkDOBCZEMDWOOnQO/wfmitlaRktUEID6W+lbkTgAQ==" + "version": "2.85.34", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.34.tgz", + "integrity": "sha512-GX70Cd7djjafeqnKWu1MDeRC07p35Ygqx+4e/dOK8ZuweATtHF+1RNX3xK8EjDLW+ywXJsj++z3gxEKlLuoCqw==" }, "@abaplint/runtime": { "version": "1.8.11", diff --git a/package.json b/package.json index bae75e4..66501a7 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "homepage": "https://github.com/open-abap/open-abap-ssh#readme", "dependencies": { - "@abaplint/cli": "^2.85.32", + "@abaplint/cli": "^2.85.34", "@abaplint/runtime": "^1.8.11", "@abaplint/transpiler-cli": "^1.8.11" } From 024f66f92f87a2196bf53da1082eda514e540367 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 2 Mar 2022 11:52:38 +0100 Subject: [PATCH 3/9] update readme --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 663a85a..b9e8d59 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# abapGit-ssh -testing test +# open-abap-ssh +SSH client implemented in ABAP, over TCP/IP with 1 byte frame sizes = slow. + +https://datatracker.ietf.org/doc/html/rfc4251 - The Secure Shell (SSH) Protocol Architecture +https://datatracker.ietf.org/doc/html/rfc4252 - The Secure Shell (SSH) Authentication Protocol +https://datatracker.ietf.org/doc/html/rfc4253 - The Secure Shell (SSH) Transport Layer Protocol +https://datatracker.ietf.org/doc/html/rfc4254 - The Secure Shell (SSH) Connection Protocol \ No newline at end of file From ed0a0a1250547bd97ea741ab7a6a687ecc9405bf Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 2 Mar 2022 13:56:36 +0100 Subject: [PATCH 4/9] add comments --- src/zcl_oassh_message_20.clas.abap | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/zcl_oassh_message_20.clas.abap b/src/zcl_oassh_message_20.clas.abap index f5909ba..fd65f73 100644 --- a/src/zcl_oassh_message_20.clas.abap +++ b/src/zcl_oassh_message_20.clas.abap @@ -43,10 +43,12 @@ ENDCLASS. -CLASS ZCL_OASSH_MESSAGE_20 IMPLEMENTATION. +CLASS zcl_oassh_message_20 IMPLEMENTATION. METHOD parse. +* https://datatracker.ietf.org/doc/html/rfc4253#section-7.1 +* SSH_MSG_KEXINIT rs_data-message_id = io_stream->take( 1 ). ASSERT rs_data-message_id = gc_message_id. @@ -86,4 +88,4 @@ CLASS ZCL_OASSH_MESSAGE_20 IMPLEMENTATION. ro_stream->uint32_encode( is_data-reserved ). ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file From db2b8284ba7cd52f265ba91c62ccbcf52e180ee4 Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 2 Mar 2022 12:58:40 +0000 Subject: [PATCH 5/9] fix whitespace --- src/zcl_oassh_message_20.clas.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zcl_oassh_message_20.clas.abap b/src/zcl_oassh_message_20.clas.abap index fd65f73..1589e81 100644 --- a/src/zcl_oassh_message_20.clas.abap +++ b/src/zcl_oassh_message_20.clas.abap @@ -88,4 +88,4 @@ CLASS zcl_oassh_message_20 IMPLEMENTATION. ro_stream->uint32_encode( is_data-reserved ). ENDMETHOD. -ENDCLASS. \ No newline at end of file +ENDCLASS. From 23ab4501b83f28b30080c9bb82433397fdda6f7b Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 2 Mar 2022 13:36:02 +0000 Subject: [PATCH 6/9] fixes --- src/zcl_oassh.clas.abap | 51 +++++++++------- src/zcl_oassh_stream.clas.abap | 105 +++++++++++++++++++-------------- 2 files changed, 90 insertions(+), 66 deletions(-) diff --git a/src/zcl_oassh.clas.abap b/src/zcl_oassh.clas.abap index daed84c..b527908 100644 --- a/src/zcl_oassh.clas.abap +++ b/src/zcl_oassh.clas.abap @@ -21,10 +21,12 @@ CLASS zcl_oassh DEFINITION key_exchange TYPE i VALUE 2, END OF gc_state . DATA mi_client TYPE REF TO if_apc_wsp_client . - DATA mv_buffer TYPE xstring . + DATA mo_stream TYPE REF TO zcl_oassh_stream . DATA mv_state TYPE i . - METHODS handle . + METHODS handle + RAISING + cx_apc_error . METHODS send IMPORTING !iv_message TYPE xstring @@ -34,7 +36,7 @@ ENDCLASS. -CLASS zcl_oassh IMPLEMENTATION. +CLASS ZCL_OASSH IMPLEMENTATION. METHOD connect. @@ -44,6 +46,8 @@ CLASS zcl_oassh IMPLEMENTATION. CREATE OBJECT lo_ssh. + CREATE OBJECT lo_ssh->mo_stream. + ls_frame-frame_type = if_apc_tcp_frame_types=>co_frame_type_fixed_length. ls_frame-fixed_length = 1. @@ -61,30 +65,31 @@ CLASS zcl_oassh IMPLEMENTATION. METHOD handle. DATA lv_remote_version TYPE string. - DATA lo_stream TYPE REF TO zcl_oassh_stream. DATA lv_padding_length TYPE i. DATA lv_length TYPE i. DATA ls_kexinit TYPE zcl_oassh_message_20=>ty_data. CASE mv_state. WHEN gc_state-protocol_version_exchange. - IF mv_buffer CP |*{ cl_abap_codepage=>convert_to( |{ cl_abap_char_utilities=>cr_lf }| ) }|. - lv_remote_version = cl_abap_codepage=>convert_from( mv_buffer ). - CLEAR mv_buffer. + IF mo_stream->get( ) CP |*{ cl_abap_codepage=>convert_to( |{ cl_abap_char_utilities=>cr_lf }| ) }|. + lv_remote_version = cl_abap_codepage=>convert_from( mo_stream->get( ) ). + mo_stream->clear( ). mv_state = gc_state-key_exchange. ENDIF. WHEN gc_state-key_exchange. -* todo, check buffer contains a full packet, and return the packet payload * https://datatracker.ietf.org/doc/html/rfc4253#section-7 - IF xstrlen( mv_buffer ) > 4. - CREATE OBJECT lo_stream EXPORTING iv_hex = mv_buffer. - lv_length = lo_stream->uint32_decode( ). - IF lo_stream->get_length( ) = lv_length. + IF mo_stream->get_length( ) > 4. + lv_length = mo_stream->uint32_decode_peek( ). + IF mo_stream->get_length( ) = lv_length. + mo_stream->uint32_decode( ). * there is no MAC negotiated at this point in time - lv_padding_length = lo_stream->take( 1 ). - ls_kexinit = zcl_oassh_message_20=>parse( lo_stream ). - lo_stream->take( lv_padding_length ). + lv_padding_length = mo_stream->take( 1 ). + ls_kexinit = zcl_oassh_message_20=>parse( mo_stream ). + mo_stream->take( lv_padding_length / 2 ). + + ls_kexinit-cookie = '11223344556677881122334455667788'. " todo, this should value should be random + send( zcl_oassh_message_20=>serialize( ls_kexinit )->get( ) ). ENDIF. ENDIF. @@ -94,11 +99,13 @@ CLASS zcl_oassh IMPLEMENTATION. METHOD if_apc_wsp_event_handler~on_close. + BREAK-POINT. WRITE / 'on_close'. ENDMETHOD. METHOD if_apc_wsp_event_handler~on_error. + BREAK-POINT. WRITE / 'on_error'. ENDMETHOD. @@ -108,17 +115,17 @@ CLASS zcl_oassh IMPLEMENTATION. TRY. lv_message = i_message->get_binary( ). - CATCH cx_root. + mo_stream->append( lv_message ). + handle( ). + CATCH cx_root INTO DATA(lx_error). + BREAK-POINT. ENDTRY. - mv_buffer = mv_buffer && lv_message. - - handle( ). - ENDMETHOD. METHOD if_apc_wsp_event_handler~on_open. DATA lv_xstr TYPE xstring. + BREAK-POINT. WRITE / 'on_open'. @@ -141,8 +148,8 @@ CLASS zcl_oassh IMPLEMENTATION. DATA li_message_manager TYPE REF TO if_apc_wsp_message_manager. DATA li_message TYPE REF TO if_apc_wsp_message. - DATA lv_index TYPE i. - DATA lv_hex TYPE xstring. + DATA lv_index TYPE i. + DATA lv_hex TYPE xstring. li_message_manager ?= mi_client->get_message_manager( ). diff --git a/src/zcl_oassh_stream.clas.abap b/src/zcl_oassh_stream.clas.abap index 226d263..7351694 100644 --- a/src/zcl_oassh_stream.clas.abap +++ b/src/zcl_oassh_stream.clas.abap @@ -1,48 +1,53 @@ -CLASS zcl_oassh_stream DEFINITION - PUBLIC - FINAL - CREATE PUBLIC . - - PUBLIC SECTION. - - METHODS constructor - IMPORTING - !iv_hex TYPE xstring OPTIONAL . - METHODS get - RETURNING - VALUE(rv_hex) TYPE xstring . - METHODS take - IMPORTING - !iv_length TYPE i - RETURNING - VALUE(rv_hex) TYPE xstring . - METHODS append - IMPORTING - !iv_hex TYPE xsequence . - METHODS name_list_encode - IMPORTING - !it_list TYPE string_table . - METHODS boolean_encode - IMPORTING - !iv_boolean TYPE abap_bool . - METHODS boolean_decode - RETURNING - VALUE(rv_boolean) TYPE abap_bool . - METHODS name_list_decode - RETURNING - VALUE(rt_list) TYPE string_table . - METHODS uint32_encode - IMPORTING - !iv_int TYPE i . - METHODS uint32_decode - RETURNING - VALUE(rv_int) TYPE i . - METHODS get_length - RETURNING - VALUE(rv_length) TYPE i . +class ZCL_OASSH_STREAM definition + public + final + create public . + +public section. + + methods CONSTRUCTOR + importing + !IV_HEX type XSTRING optional . + methods GET + returning + value(RV_HEX) type XSTRING . + methods TAKE + importing + !IV_LENGTH type I + returning + value(RV_HEX) type XSTRING . + methods APPEND + importing + !IV_HEX type XSEQUENCE . + methods NAME_LIST_ENCODE + importing + !IT_LIST type STRING_TABLE . + methods BOOLEAN_ENCODE + importing + !IV_BOOLEAN type ABAP_BOOL . + methods BOOLEAN_DECODE + returning + value(RV_BOOLEAN) type ABAP_BOOL . + methods NAME_LIST_DECODE + returning + value(RT_LIST) type STRING_TABLE . + methods UINT32_ENCODE + importing + !IV_INT type I . + methods UINT32_DECODE + returning + value(RV_INT) type I . + methods UINT32_DECODE_PEEK + returning + value(RV_INT) type I . + methods GET_LENGTH + returning + value(RV_LENGTH) type I . + methods CLEAR . PROTECTED SECTION. - PRIVATE SECTION. - DATA mv_hex TYPE xstring. +private section. + + data MV_HEX type XSTRING . ENDCLASS. @@ -72,6 +77,11 @@ CLASS ZCL_OASSH_STREAM IMPLEMENTATION. ENDMETHOD. + METHOD clear. + CLEAR mv_hex. + ENDMETHOD. + + METHOD constructor. mv_hex = iv_hex. ENDMETHOD. @@ -128,6 +138,13 @@ CLASS ZCL_OASSH_STREAM IMPLEMENTATION. ENDMETHOD. + METHOD uint32_decode_peek. + + rv_int = mv_hex(4). + + ENDMETHOD. + + METHOD uint32_encode. DATA lv_hex TYPE x LENGTH 4. From 4e154d7b5c3f4344b0214222a4d32ff45f66b7a1 Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 2 Mar 2022 14:17:41 +0000 Subject: [PATCH 7/9] ECDH scaffolding --- src/zcl_oassh.clas.abap | 1 + src/zcl_oassh.clas.xml | 2 +- src/zcl_oassh_message_ecdh_30.clas.abap | 45 +++++++++ src/zcl_oassh_message_ecdh_30.clas.xml | 16 ++++ src/zcl_oassh_message_ecdh_31.clas.abap | 47 +++++++++ src/zcl_oassh_message_ecdh_31.clas.xml | 16 ++++ src/zcl_oassh_stream.clas.abap | 122 ++++++++++++++---------- src/zcl_oassh_stream.clas.xml | 2 +- 8 files changed, 201 insertions(+), 50 deletions(-) create mode 100644 src/zcl_oassh_message_ecdh_30.clas.abap create mode 100644 src/zcl_oassh_message_ecdh_30.clas.xml create mode 100644 src/zcl_oassh_message_ecdh_31.clas.abap create mode 100644 src/zcl_oassh_message_ecdh_31.clas.xml diff --git a/src/zcl_oassh.clas.abap b/src/zcl_oassh.clas.abap index b527908..03ef163 100644 --- a/src/zcl_oassh.clas.abap +++ b/src/zcl_oassh.clas.abap @@ -5,6 +5,7 @@ CLASS zcl_oassh DEFINITION PUBLIC SECTION. INTERFACES if_apc_wsp_event_handler . + INTERFACES if_apc_wsp_event_handler_base . CLASS-METHODS connect IMPORTING diff --git a/src/zcl_oassh.clas.xml b/src/zcl_oassh.clas.xml index 0aa13ed..6982130 100644 --- a/src/zcl_oassh.clas.xml +++ b/src/zcl_oassh.clas.xml @@ -5,7 +5,7 @@ ZCL_OASSH E - ssh test + open-abap-ssh 1 X X diff --git a/src/zcl_oassh_message_ecdh_30.clas.abap b/src/zcl_oassh_message_ecdh_30.clas.abap new file mode 100644 index 0000000..6e633e7 --- /dev/null +++ b/src/zcl_oassh_message_ecdh_30.clas.abap @@ -0,0 +1,45 @@ +CLASS zcl_oassh_message_ecdh_30 DEFINITION + PUBLIC + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + + TYPES: + BEGIN OF ty_data, + message_id TYPE x LENGTH 1, + q_c TYPE xstring, + END OF ty_data . + + CONSTANTS gc_message_id TYPE x LENGTH 1 VALUE '1E'. " is 30 in decimal + + CLASS-METHODS parse + IMPORTING + !io_stream TYPE REF TO zcl_oassh_stream + RETURNING + VALUE(rs_data) TYPE ty_data . + + CLASS-METHODS serialize + IMPORTING + is_data TYPE ty_data + RETURNING + VALUE(ro_stream) TYPE REF TO zcl_oassh_stream . + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS ZCL_OASSH_MESSAGE_ECDH_30 IMPLEMENTATION. + + + METHOD parse. + BREAK-POINT. + ENDMETHOD. + + + METHOD serialize. + BREAK-POINT. + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_oassh_message_ecdh_30.clas.xml b/src/zcl_oassh_message_ecdh_30.clas.xml new file mode 100644 index 0000000..bd510a6 --- /dev/null +++ b/src/zcl_oassh_message_ecdh_30.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_OASSH_MESSAGE_ECDH_30 + E + SSH_MSG_KEX_ECDH_INIT + 1 + X + X + X + + + + diff --git a/src/zcl_oassh_message_ecdh_31.clas.abap b/src/zcl_oassh_message_ecdh_31.clas.abap new file mode 100644 index 0000000..c068aac --- /dev/null +++ b/src/zcl_oassh_message_ecdh_31.clas.abap @@ -0,0 +1,47 @@ +CLASS zcl_oassh_message_ecdh_31 DEFINITION + PUBLIC + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + + TYPES: + BEGIN OF ty_data, + message_id TYPE x LENGTH 1, + k_s TYPE xstring, + q_s TYPE xstring, + signature TYPE xstring, + END OF ty_data . + + CONSTANTS gc_message_id TYPE x LENGTH 1 VALUE '1F'. " is 31 in decimal + + CLASS-METHODS parse + IMPORTING + !io_stream TYPE REF TO zcl_oassh_stream + RETURNING + VALUE(rs_data) TYPE ty_data . + + CLASS-METHODS serialize + IMPORTING + is_data TYPE ty_data + RETURNING + VALUE(ro_stream) TYPE REF TO zcl_oassh_stream . + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS ZCL_OASSH_MESSAGE_ECDH_31 IMPLEMENTATION. + + + METHOD parse. + BREAK-POINT. + ENDMETHOD. + + + METHOD serialize. + BREAK-POINT. + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_oassh_message_ecdh_31.clas.xml b/src/zcl_oassh_message_ecdh_31.clas.xml new file mode 100644 index 0000000..b9cab9e --- /dev/null +++ b/src/zcl_oassh_message_ecdh_31.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_OASSH_MESSAGE_ECDH_31 + E + SSH_MSG_KEX_ECDH_REPLY + 1 + X + X + X + + + + diff --git a/src/zcl_oassh_stream.clas.abap b/src/zcl_oassh_stream.clas.abap index 7351694..22f6530 100644 --- a/src/zcl_oassh_stream.clas.abap +++ b/src/zcl_oassh_stream.clas.abap @@ -1,53 +1,59 @@ -class ZCL_OASSH_STREAM definition - public - final - create public . - -public section. - - methods CONSTRUCTOR - importing - !IV_HEX type XSTRING optional . - methods GET - returning - value(RV_HEX) type XSTRING . - methods TAKE - importing - !IV_LENGTH type I - returning - value(RV_HEX) type XSTRING . - methods APPEND - importing - !IV_HEX type XSEQUENCE . - methods NAME_LIST_ENCODE - importing - !IT_LIST type STRING_TABLE . - methods BOOLEAN_ENCODE - importing - !IV_BOOLEAN type ABAP_BOOL . - methods BOOLEAN_DECODE - returning - value(RV_BOOLEAN) type ABAP_BOOL . - methods NAME_LIST_DECODE - returning - value(RT_LIST) type STRING_TABLE . - methods UINT32_ENCODE - importing - !IV_INT type I . - methods UINT32_DECODE - returning - value(RV_INT) type I . - methods UINT32_DECODE_PEEK - returning - value(RV_INT) type I . - methods GET_LENGTH - returning - value(RV_LENGTH) type I . - methods CLEAR . +CLASS zcl_oassh_stream DEFINITION + PUBLIC + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + + METHODS constructor + IMPORTING + !iv_hex TYPE xstring OPTIONAL . + METHODS get + RETURNING + VALUE(rv_hex) TYPE xstring . + METHODS take + IMPORTING + !iv_length TYPE i + RETURNING + VALUE(rv_hex) TYPE xstring . + METHODS append + IMPORTING + !iv_hex TYPE xsequence . + METHODS name_list_encode + IMPORTING + !it_list TYPE string_table . + METHODS boolean_encode + IMPORTING + !iv_boolean TYPE abap_bool . + METHODS boolean_decode + RETURNING + VALUE(rv_boolean) TYPE abap_bool . + METHODS name_list_decode + RETURNING + VALUE(rt_list) TYPE string_table . + METHODS uint32_encode + IMPORTING + !iv_int TYPE i . + METHODS uint32_decode + RETURNING + VALUE(rv_int) TYPE i . + METHODS uint32_decode_peek + RETURNING + VALUE(rv_int) TYPE i . + METHODS get_length + RETURNING + VALUE(rv_length) TYPE i . + METHODS clear . + METHODS string_encode + IMPORTING + !iv_string TYPE xstring . + METHODS string_decode + RETURNING + VALUE(rv_string) TYPE xstring . PROTECTED SECTION. -private section. + PRIVATE SECTION. - data MV_HEX type XSTRING . + DATA mv_hex TYPE xstring . ENDCLASS. @@ -125,6 +131,26 @@ CLASS ZCL_OASSH_STREAM IMPLEMENTATION. ENDMETHOD. + METHOD string_decode. +* https://datatracker.ietf.org/doc/html/rfc4251#section-5 + + DATA lv_len TYPE i. + + lv_len = uint32_decode( ). + rv_string = take( lv_len ). + + ENDMETHOD. + + + METHOD string_encode. +* https://datatracker.ietf.org/doc/html/rfc4251#section-5 + + uint32_encode( xstrlen( iv_string ) ). + append( iv_string ). + + ENDMETHOD. + + METHOD take. rv_hex = mv_hex(iv_length). mv_hex = mv_hex+iv_length. diff --git a/src/zcl_oassh_stream.clas.xml b/src/zcl_oassh_stream.clas.xml index b49d204..76b9ae6 100644 --- a/src/zcl_oassh_stream.clas.xml +++ b/src/zcl_oassh_stream.clas.xml @@ -5,7 +5,7 @@ ZCL_OASSH_STREAM E - Stream + open-abap-ssh - Stream 1 X X From 2cf4608e05a2e71bf096569c99d977d554e7f3e8 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Tue, 19 Apr 2022 08:35:14 +0200 Subject: [PATCH 8/9] update --- package-lock.json | 108 +++++++++------------------------------------- package.json | 6 +-- 2 files changed, 24 insertions(+), 90 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0395153..8a998db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,15 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@abaplint/cli": "^2.85.34", - "@abaplint/runtime": "^1.8.11", - "@abaplint/transpiler-cli": "^1.8.11" + "@abaplint/cli": "^2.89.0", + "@abaplint/runtime": "^2.0.9", + "@abaplint/transpiler-cli": "^2.0.9" } }, "node_modules/@abaplint/cli": { - "version": "2.85.34", - "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.34.tgz", - "integrity": "sha512-GX70Cd7djjafeqnKWu1MDeRC07p35Ygqx+4e/dOK8ZuweATtHF+1RNX3xK8EjDLW+ywXJsj++z3gxEKlLuoCqw==", + "version": "2.89.0", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.89.0.tgz", + "integrity": "sha512-N+qpOa1BkHDglX4ibITrxpJvRN3JIesRumuePMDPkee2bqNfDfgq6xZedLoWI2kUsAj5DpiWdKbNY4nBme0WIg==", "bin": { "abaplint": "abaplint" }, @@ -26,100 +26,34 @@ } }, "node_modules/@abaplint/runtime": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.8.11.tgz", - "integrity": "sha512-c35VaQ+vNEHRQ0RBVEvgceHbnRuRlPxUtrg73y5tFT3j34K7KF8k6nOIaZqotH4gnraWcDDEfjxUCWy0tQAVzQ==", - "dependencies": { - "hdb": "^0.19.1", - "sql.js": "^1.6.2" - } + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-2.0.9.tgz", + "integrity": "sha512-z6jIDF/98+DAVDdM5LYeBNLIJrh4Mg/EIa3C+ESCokLevGMCTynuGomg3E8mv9/Cu+YxWA0SPMzcGof0i7jg7Q==" }, "node_modules/@abaplint/transpiler-cli": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.8.11.tgz", - "integrity": "sha512-JlENFEvzRraJxEPYKMXPgLZX/clH5hSGFyttKMPGUREX7qg6OS99lMSGCKF2TisyS0GAW38N+jIcs2dVTYn5jw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-2.0.9.tgz", + "integrity": "sha512-1prLaF03TqQ5OAndGt1BhmUQXjw9Ip0HKVWftyjc7KvFq2P/QscLqB5EuLiOnzIOKnBFt6bb6CLJgFTNRJTdWw==", "bin": { "abap_transpile": "abap_transpile" } - }, - "node_modules/hdb": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hdb/-/hdb-0.19.1.tgz", - "integrity": "sha512-QqB7Srj/AaesB1bZPiKZMPXnjU4NRgP7ZheCHUWf4EKKqZXpWW2lJcb6BRnNfjxfCYIT+TR1wIaA0zLO1CeU6w==", - "dependencies": { - "iconv-lite": "^0.4.18" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sql.js": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.6.2.tgz", - "integrity": "sha512-9iucI5fXQa+Gspeqf/BNB20PxJIn5LhXDt4mjXoFPqXdR+NqtFs15SdKpSIJ6s529aGL9zFR9p2eSCIEiMsNGA==" } }, "dependencies": { "@abaplint/cli": { - "version": "2.85.34", - "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.34.tgz", - "integrity": "sha512-GX70Cd7djjafeqnKWu1MDeRC07p35Ygqx+4e/dOK8ZuweATtHF+1RNX3xK8EjDLW+ywXJsj++z3gxEKlLuoCqw==" + "version": "2.89.0", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.89.0.tgz", + "integrity": "sha512-N+qpOa1BkHDglX4ibITrxpJvRN3JIesRumuePMDPkee2bqNfDfgq6xZedLoWI2kUsAj5DpiWdKbNY4nBme0WIg==" }, "@abaplint/runtime": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.8.11.tgz", - "integrity": "sha512-c35VaQ+vNEHRQ0RBVEvgceHbnRuRlPxUtrg73y5tFT3j34K7KF8k6nOIaZqotH4gnraWcDDEfjxUCWy0tQAVzQ==", - "requires": { - "hdb": "^0.19.1", - "sql.js": "^1.6.2" - } + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-2.0.9.tgz", + "integrity": "sha512-z6jIDF/98+DAVDdM5LYeBNLIJrh4Mg/EIa3C+ESCokLevGMCTynuGomg3E8mv9/Cu+YxWA0SPMzcGof0i7jg7Q==" }, "@abaplint/transpiler-cli": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.8.11.tgz", - "integrity": "sha512-JlENFEvzRraJxEPYKMXPgLZX/clH5hSGFyttKMPGUREX7qg6OS99lMSGCKF2TisyS0GAW38N+jIcs2dVTYn5jw==" - }, - "hdb": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/hdb/-/hdb-0.19.1.tgz", - "integrity": "sha512-QqB7Srj/AaesB1bZPiKZMPXnjU4NRgP7ZheCHUWf4EKKqZXpWW2lJcb6BRnNfjxfCYIT+TR1wIaA0zLO1CeU6w==", - "requires": { - "iconv-lite": "^0.4.18" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sql.js": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.6.2.tgz", - "integrity": "sha512-9iucI5fXQa+Gspeqf/BNB20PxJIn5LhXDt4mjXoFPqXdR+NqtFs15SdKpSIJ6s529aGL9zFR9p2eSCIEiMsNGA==" + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-2.0.9.tgz", + "integrity": "sha512-1prLaF03TqQ5OAndGt1BhmUQXjw9Ip0HKVWftyjc7KvFq2P/QscLqB5EuLiOnzIOKnBFt6bb6CLJgFTNRJTdWw==" } } } diff --git a/package.json b/package.json index 66501a7..14f787a 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,8 @@ }, "homepage": "https://github.com/open-abap/open-abap-ssh#readme", "dependencies": { - "@abaplint/cli": "^2.85.34", - "@abaplint/runtime": "^1.8.11", - "@abaplint/transpiler-cli": "^1.8.11" + "@abaplint/cli": "^2.89.0", + "@abaplint/runtime": "^2.0.9", + "@abaplint/transpiler-cli": "^2.0.9" } } From 38c98e49fe389999d9dce029c67a5ad956961878 Mon Sep 17 00:00:00 2001 From: larshp Date: Tue, 19 Apr 2022 06:36:41 +0000 Subject: [PATCH 9/9] upd --- src/zcl_oassh.clas.abap | 1 - 1 file changed, 1 deletion(-) diff --git a/src/zcl_oassh.clas.abap b/src/zcl_oassh.clas.abap index 03ef163..b527908 100644 --- a/src/zcl_oassh.clas.abap +++ b/src/zcl_oassh.clas.abap @@ -5,7 +5,6 @@ CLASS zcl_oassh DEFINITION PUBLIC SECTION. INTERFACES if_apc_wsp_event_handler . - INTERFACES if_apc_wsp_event_handler_base . CLASS-METHODS connect IMPORTING