github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/libkb/api_stub.go (about)

     1  // Copyright 2015 Keybase, Inc. All rights reserved. Use of
     2  // this source code is governed by the included BSD license.
     3  
     4  //go:build !production
     5  // +build !production
     6  
     7  package libkb
     8  
     9  import (
    10  	"strings"
    11  
    12  	"github.com/PuerkitoBio/goquery"
    13  )
    14  
    15  type StubAPIEngine struct {
    16  	*ExternalAPIEngine
    17  }
    18  
    19  func NewStubAPIEngine(g *GlobalContext) *StubAPIEngine {
    20  	return &StubAPIEngine{
    21  		ExternalAPIEngine: &ExternalAPIEngine{BaseAPIEngine{Contextified: NewContextified(g), clients: make(map[int]*Client)}},
    22  	}
    23  }
    24  
    25  func (e *StubAPIEngine) Get(m MetaContext, arg APIArg) (res *ExternalAPIRes, err error) {
    26  	return e.ExternalAPIEngine.Get(m, arg)
    27  }
    28  
    29  func (e *StubAPIEngine) GetHTML(m MetaContext, arg APIArg) (res *ExternalHTMLRes, err error) {
    30  	if body, ok := htmlAPIStubs[arg.Endpoint]; ok {
    31  		doc, err := goquery.NewDocumentFromReader(strings.NewReader(body))
    32  		if err != nil {
    33  			return nil, err
    34  		}
    35  		return &ExternalHTMLRes{
    36  			GoQuery:    doc,
    37  			HTTPStatus: 200,
    38  		}, nil
    39  	}
    40  	return e.ExternalAPIEngine.GetHTML(m, arg)
    41  }
    42  
    43  func (e *StubAPIEngine) GetText(m MetaContext, arg APIArg) (*ExternalTextRes, error) {
    44  	if body, ok := apiStubs[arg.Endpoint]; ok {
    45  		return &ExternalTextRes{Body: body, HTTPStatus: 200}, nil
    46  	}
    47  	return e.ExternalAPIEngine.GetText(m, arg)
    48  }
    49  
    50  var apiStubs = map[string]string{
    51  	"https://gist.githubusercontent.com/kbtester1/9f6c0787825f4fcc81f7/raw/1ec930037d05bbd2496e862a023d69ae6cc4c215/keybase.md": `### Keybase proof
    52  
    53  I hereby claim:
    54  
    55    * I am kbtester1 on github.
    56    * I am t_bob (https://keybase.io/t_bob) on keybase.
    57    * I have a public key whose fingerprint is 91FE 9B24 EF67 06B1 F789  8F20 59A2 A43F 8B73 1F29
    58  
    59  To claim this, I am signing this object:
    60  
    61  json
    62  {
    63      "body": {
    64          "client": {
    65              "name": "keybase.io node.js client",
    66              "version": "0.7.5"
    67          },
    68          "key": {
    69              "fingerprint": "91fe9b24ef6706b1f7898f2059a2a43f8b731f29",
    70              "host": "keybase.io",
    71              "key_id": "59A2A43F8B731F29",
    72              "uid": "afb5eda3154bc13c1df0189ce93ba119",
    73              "username": "t_bob"
    74          },
    75          "merkle_root": {
    76              "ctime": 1424293533,
    77              "hash": "976e2bd970e1375d2a4c906ddef53e015e4bcbee8d87f7d1992e0344abe36f3d2e622efa9d2715d3350b7be5e981357d7e9c93db84c041210df98a3747c84073",
    78              "seqno": 5
    79          },
    80          "service": {
    81              "name": "github",
    82              "username": "kbtester1"
    83          },
    84          "type": "web_service_binding",
    85          "version": 1
    86      },
    87      "ctime": 1424293535,
    88      "expire_in": 157680000,
    89      "prev": "4364d76671c1a7cc4d4597aee4c534ea4086e3831e867010ae0509832608c1d0",
    90      "seqno": 2,
    91      "tag": "signature"
    92  }
    93  
    94  
    95  with the key [91FE 9B24 EF67 06B1 F789  8F20 59A2 A43F 8B73 1F29](https://keybase.io/t_bob), yielding the signature:
    96  
    97  
    98  -----BEGIN PGP MESSAGE-----
    99  Version: GnuPG/MacGPG2 v2
   100  
   101  owFdUltsFVUUvb3YgmgDojGiVcuA0YTbm/OcM6etFTRp/OJDjD9qrufM2XPvtHTm
   102  OjOtlJsGH1Hsj8EHvhptaEET8AMlPAwtGnkUQ2orwWiCjcRACNEYw4cBNMaZmxrB
   103  87Wz99prr3X23tq8IJdviJ5ov9T15URrw8mLOvf4ub9Ha5YOzaDVXrPcDT4ESRYF
   104  qg+sdqsXBrWKoeiHrUFooNgTt85jCtYARLEfBikKFUWRW0OFDJ41e35Qhqga+RmX
   105  JbEHUhMGni2QrbEnHOl4BHGpiGLUc7Sg2CMypayEcXLdVKvOWfJNmuVyLVnLaLfz
   106  cIrvruP76wXlaQ5GUcyZdjF1sfEQdqQLkmqFcR0YQzRvKSnpUGdi+yDq3QClKAzr
   107  jt3Ez+qYEUYk5ZSmclRcyQwIG4g2UiDAVHCTqnYlso0Bj1NAmEM6VwM4xhGeMFhK
   108  AogypjRQ26OGgE0IeEoaIjA3lHKkhQYO0sGUCyNAupIa7TAXMUwwMp50FBVMuA5D
   109  gqb6Y3g2CK12PpSF0YDvwjVLKvtJpV9f77JXJxAnEOHMaTJYzXLPgS7Nd5e0Hxg/
   110  GC1fu0ecQv//C7xgwcaqH0HJzxBc2A5KX8GqRjCQcjJqMyNsW2AXK+G6zDAuhQJg
   111  LqcMFEOODdShGJx0+xgpQBxJhxIbOemi0H/eSKpTlVPK2C8HKumPwBoabmi5IdeQ
   112  zzU15rNDzS2+cem/17vn1UW5mdnOw317u/atXL3wIPrrapM1Jtcc3o4fqu76oXLi
   113  44svfLPgzEenu34abxv+896Ryzuu7Hn0tml993vrF0c/Tk183vlmcNPkp9M7F47d
   114  9eLZn99vemvm2zeO/fp0bQJdngrWL227OnhhE8R/3HrifMfrIx073jkw9ciTMz2F
   115  VeXKpfOdq3p63hWj418s23pqfNvIgQ+OzW3e+N2hJS/lT52+0la6ffjcTMuuoOOZ
   116  LWvQfV/3rXtwUfMts3P3HM0Xx/Yf2j7dff/yWuOR/trumxuf33cwv2Xg9xXo5BJy
   117  58hTHx59eXb5Z78dSTZ/9djq/IXJ45/sbd55R7Ltte7Zt385/sqmydaWeP/cimX8
   118  zAPf187+Aw==
   119  =Zpkd
   120  -----END PGP MESSAGE-----
   121  
   122  
   123  
   124  And finally, I am proving ownership of the github account by posting this as a gist.
   125  
   126  ### My publicly-auditable identity:
   127  
   128  https://keybase.io/t_bob
   129  
   130  ### From the command line:
   131  
   132  Consider the [keybase command line program](https://keybase.io/docs/command_line).
   133  
   134  bash
   135  # look me up
   136  keybase id t_bob
   137  
   138  # encrypt a message to me
   139  keybase encrypt t_bob -m 'a secret message...'
   140  
   141  # ...and more...
   142  `,
   143  	"https://gist.githubusercontent.com/kbtester2/3cbaad55bfae3ed948d9/raw/0c5a148629e3f405ed8d640b8fa432a073da56c8/keybase.md": `### Keybase proof
   144  
   145  	   I hereby claim:
   146  
   147  	     * I am kbtester2 on github.
   148  	     * I am t_alice (https://keybase.io/t_alice) on keybase.
   149  	     * I have a public key whose fingerprint is 2373 FD08 9F28 F328 916B  88F9 9C79 27C0 BDFD ADF9
   150  
   151  	   To claim this, I am signing this object:
   152  
   153  	   json
   154  	   {
   155  	       "body": {
   156  	           "client": {
   157  	               "name": "keybase.io node.js client",
   158  	               "version": "0.7.5"
   159  	           },
   160  	           "key": {
   161  	               "fingerprint": "2373fd089f28f328916b88f99c7927c0bdfdadf9",
   162  	               "host": "keybase.io",
   163  	               "key_id": "9C7927C0BDFDADF9",
   164  	               "uid": "295a7eea607af32040647123732bc819",
   165  	               "username": "t_alice"
   166  	           },
   167  	           "merkle_root": {
   168  	               "ctime": 1424293518,
   169  	               "hash": "fd557b6743f705d3672e919102a78b2a2371af34735bff33db524c5baecda8fd61c6c625ecc1ce1f7a2ed435e1c82c9a6c2ff861782daf86a9dd6594c278ac1e",
   170  	               "seqno": 2
   171  	           },
   172  	           "service": {
   173  	               "name": "github",
   174  	               "username": "kbtester2"
   175  	           },
   176  	           "type": "web_service_binding",
   177  	           "version": 1
   178  	       },
   179  	       "ctime": 1424293523,
   180  	       "expire_in": 157680000,
   181  	       "prev": "68700c8bf6c727934f126c5dcc5ef4dacfe450663435065e7930f1f87d3b5333",
   182  	       "seqno": 2,
   183  	       "tag": "signature"
   184  	   }
   185  
   186  	   with the key [2373 FD08 9F28 F328 916B  88F9 9C79 27C0 BDFD ADF9](https://keybase.io/t_alice), yielding the signature:
   187  
   188  	   -----BEGIN PGP MESSAGE-----
   189  	   Version: GnuPG/MacGPG2 v2
   190  
   191  	   owFdkm9oVWUcx++uzlhcIUTsRV6yUy8mXOZ5nuc8f840y3ZRYhAhijrIw3OeP/ee
   192  	   dnfv3Tlnm3NbRJYRWRg6wvLFpmDBpmVBBHNhL0yimDBZkqKBhJbppg2j8LJ6zlik
   193  	   nVc/nufz+35/3/N79i9dlErXTc86qPPR/R/Uffern9ry89yBPsuvyF6ruc8SpUCV
   194  	   46Qq8w5lNVvtqtfnkWoKKqvKFamaXo5WLTA5q1uFUVApG8puok3YGsgleNKsg3JB
   195  	   hdUwSLQsiCjS0mauhkwjyFxAfMa06wrqQipsX2rJpXaNZLESxQ+4WvOaXiDNqduS
   196  	   8C32c/mN+Q35jQnfNX8BXcypUpzYlBsD27GJQ0FiC33BwDwYqXAhUuzxUiBUMm6H
   197  	   CttLygsrlfnMIg4SAjjQgS7CgJmBeFQ0PVpiTH1CHaSpjSUiFCoXuMCGnDIfcuMF
   198  	   jLVDEfa1Rkj6GDoC+1wJyZmWBAgiCMRKCCAU0JRDJR2EFRAMCpcTAbVmBFAGJTcF
   199  	   d6Uk2HUEpIwLoEyCSHWWK1YzHEjKsDtJ8N+aCkFc7PIfzNnuxyqKVQiTpHFvNTnr
   200  	   Ub630O35QVkOm0Xdv0lg0P/9BYhyltpVDULlBQmBKWG2+XJWNVTdRpMwatuC+ZoI
   201  	   CqmLHA0gEVgKgZV2JBdaOdgmBJm8NsHKILYGmlGJfIwQui+bmZMXjGQUFMo87grN
   202  	   kt6qW7k4VZdOLalPJ0819XDDI/++X/7CQ7WlrbWpzGOTlz8+8ea13MVNeydfv/Ph
   203  	   6GBrJnP87HDIhnpq3/+GXnp/6pWx5fJptXd8x4YxOFK4UF8cLA4suz15cfWz3/yx
   204  	   fOhUfnDdjWNP7s7woYls6VBf6/aZZ1ZeQPtevf5R7fq3vxxbll39++5NnZfW1cb+
   205  	   yoxca+sfLJ3sp2/frd/ZcqTh9KWZT7YcfWpf40TwxOiajPf3RGPH5htz711d3//V
   206  	   3PFd538C09s/XZudGfV+PPfDi4fHv5je4VWH2+6VXkuPzKzI3zxzSH82e+XLq1MH
   207  	   Fr2x9Wv4zvptYE999vK7Vw5Otjyfnv3zVOPpe+MN9pm2xztOznahW9lbny8uumfv
   208  	   nj+3p+dg+h8=
   209  	   =iePR
   210  	   -----END PGP MESSAGE-----
   211  
   212  
   213  	   And finally, I am proving ownership of the github account by posting this as a gist.
   214  
   215  	   ### My publicly-auditable identity:
   216  
   217  	   https://keybase.io/t_alice
   218  
   219  	   ### From the command line:
   220  
   221  	   Consider the [keybase command line program](https://keybase.io/docs/command_line).
   222  
   223  	   bash
   224  	   # look me up
   225  	   keybase id t_alice
   226  
   227  	   # encrypt a message to me
   228  	   keybase encrypt t_alice -m 'a secret message...'
   229  
   230  	   # ...and more...
   231  
   232  	   	`,
   233  	"https://gist.githubusercontent.com/tacoplusplus/d21a10f2d7f6447dba7d/raw/cfeb4ffbec5f555bddf4ce23ea43bcb7613c6577/keybase.md": `### Keybase proof
   234  
   235  	   I hereby claim:
   236  
   237  	     * I am tacoplusplus on github.
   238  	     * I am t_charlie (https://keybase.io/t_charlie) on keybase.
   239  	     * I have a public key whose fingerprint is 6FB9 1F01 1D89 542A C1C0  947D DE0F 9384 9129 7B7F
   240  
   241  	   To claim this, I am signing this object:
   242  
   243  	   json
   244  	   {
   245  	       "body": {
   246  	           "client": {
   247  	               "name": "keybase.io node.js client",
   248  	               "version": "0.7.5"
   249  	           },
   250  	           "key": {
   251  	               "fingerprint": "6fb91f011d89542ac1c0947dde0f938491297b7f",
   252  	               "host": "keybase.io",
   253  	               "key_id": "DE0F938491297B7F",
   254  	               "uid": "9d56bd0c02ac2711e142faf484ea9519",
   255  	               "username": "t_charlie"
   256  	           },
   257  	           "merkle_root": {
   258  	               "ctime": 1424293546,
   259  	               "hash": "ad25d6ffda2195229175f7199e6fca799b36ca03523c2fb8030f9b81bb185ea7a4babfdbf7650e80a0ecb015a0bfd6382fe42b11b4914aff5812d3667cb4cd33",
   260  	               "seqno": 8
   261  	           },
   262  	           "service": {
   263  	               "name": "github",
   264  	               "username": "tacoplusplus"
   265  	           },
   266  	           "type": "web_service_binding",
   267  	           "version": 1
   268  	       },
   269  	       "ctime": 1424293548,
   270  	       "expire_in": 157680000,
   271  	       "prev": "1dd32ec2e951f642d6f88ac93f07c69b1195d63d9011cfe5ff14a889c8af3d54",
   272  	       "seqno": 2,
   273  	       "tag": "signature"
   274  	   }
   275  
   276  	   with the key [6FB9 1F01 1D89 542A C1C0  947D DE0F 9384 9129 7B7F](https://keybase.io/t_charlie), yielding the signature:
   277  
   278  	   -----BEGIN PGP MESSAGE-----
   279  	   Version: GnuPG/MacGPG2 v2
   280  
   281  	   owFdkl1sFUUUx+9toUJFPpWibQJsUnngWmZmd3ZnClIw5SakxgipNJCY2/m83dK7
   282  	   e9m9t7aBykdoCA986AMoJCQaEaKGNEQrFF54oMYYDOGjDSRqNTURDST0wfigjbNN
   283  	   QWSTTSZn/uc/53fOOfpcZaoifX9ieI/c/XFd+rt7PNU6PvnFTouHstdq3GmJLl8F
   284  	   peQUsIKyGq3tqpezWDX44bIglKqhM142rclY3SqK/TAwKtDgNWCrL5PIk2TtB3kV
   285  	   FSM/8bJczSnUAEJJKHYQE1AA6nhSKqCpTRwKEfW4p41lRxiX/veqNeWZ86WJNm8A
   286  	   2cf617ysuStPXVCJXS6BAMYbeRAq6CDNtEMcxSiGNBHGKppGKuVEB4sMRFJwQUXb
   287  	   u1QuCsMpalHyE43JdxC1seOakljcYbKYRFi6WkuGIMUIUehh7UFKlasF8yjltisY
   288  	   sDGyBdKcANvAcQI5hwQr5jGHM64l156LgSKAASU4gJgBE3VtgrRyEIeQGzyHaY0J
   289  	   RNJ2XU9wR0jbNgyx2hGEViPpS45Rty/UE4PK+6WOMn+KlImw2FWOkz+BLfUWk/A7
   290  	   iuemDT7NcT+QZlpPjhMa6dONIBlL9RT9SOX8RIE9lwDzZaxipLqNJ5TSRkogZfqt
   291  	   XQeZVhHCBLU18IRLDRg17bMlNWsgtMJaG0pCqCBM2xI7/+EhUyfLG8vYzwesVI7M
   292  	   nA6m62ak0hWpqpkVyb6mqmfPf7TE2bnP/FNz6spoW/7MxuuvV+vdnx/tuzerOavb
   293  	   g9biX5fw0E+1mwuHXm4Zrf96zeaNrcOF5z8cz/YvvDv77Ok7P3feHx+67v+2ItP+
   294  	   +yJn4tZ7uPrNW6uWDsVNY3VvjO36oVo9e7vml4UvTdSom1fPozX9n51/9/hg+81D
   295  	   cwdvvFA70Pnwx5P5lauvztk0NnCjJ1y9b337g7Y5k3fK9VVbwbxX/i5UfZk+S/9Y
   296  	   UR5+66MXt7wfq707vs83rxu5fKLlYH3TmV8Hl3z7Dd6S3fPBCDs2/8SBnrUXYRXa
   297  	   9ueS28sPj26r3Ftb2XVh17zl15oefvWgtaXtWt3xFq/n7YHT5z65sKB568j+/iPr
   298  	   XhUbGicXV/4L
   299  	   =2qH+
   300  	   -----END PGP MESSAGE-----
   301  
   302  
   303  	   And finally, I am proving ownership of the github account by posting this as a gist.
   304  
   305  	   ### My publicly-auditable identity:
   306  
   307  	   https://keybase.io/t_charlie
   308  
   309  	   ### From the command line:
   310  
   311  	   Consider the [keybase command line program](https://keybase.io/docs/command_line).
   312  
   313  	   bash
   314  	   # look me up
   315  	   keybase id t_charlie
   316  
   317  	   # encrypt a message to me
   318  	   keybase encrypt t_charlie -m 'a secret message...'
   319  
   320  	   # ...and more...`,
   321  }